本文整理汇总了Java中jdk.vm.ci.code.site.DataSectionReference.setOffset方法的典型用法代码示例。如果您正苦于以下问题:Java DataSectionReference.setOffset方法的具体用法?Java DataSectionReference.setOffset怎么用?Java DataSectionReference.setOffset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jdk.vm.ci.code.site.DataSectionReference
的用法示例。
在下文中一共展示了DataSectionReference.setOffset方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: emitLoadFloat
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
@Override
public Register emitLoadFloat(float c) {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(data.position());
data.emitFloat(c);
recordDataPatchInCode(ref);
Register ret = AMD64.xmm0;
emitREX(false, ret.encoding, 0, 0);
code.emitByte(0xF3);
code.emitByte(0x0F);
code.emitByte(0x10); // MOVSS xmm1, xmm2/m32
code.emitByte(0x05 | ((ret.encoding & 0x7) << 3)); // xmm, [rip+offset]
code.emitInt(0xDEADDEAD);
return ret;
}
示例2: emitLoadFloat
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
public Register emitLoadFloat(Register ret, float c) {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(data.position());
data.emitFloat(c);
recordDataPatchInCode(ref);
emitREX(false, ret.encoding, 0, 0);
code.emitByte(0xF3);
code.emitByte(0x0F);
code.emitByte(0x10); // MOVSS xmm1, xmm2/m32
code.emitByte(0x05 | ((ret.encoding & 0x7) << 3)); // xmm, [rip+offset]
code.emitInt(0xDEADDEAD);
return ret;
}
示例3: emitLoadDouble
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
public Register emitLoadDouble(Register ret, double c) {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(data.position());
data.emitDouble(c);
recordDataPatchInCode(ref);
emitREX(false, ret.encoding, 0, 0);
code.emitByte(0xF2);
code.emitByte(0x0F);
code.emitByte(0x10); // MOVSD xmm1, xmm2/m32
code.emitByte(0x05 | ((ret.encoding & 0x7) << 3)); // xmm, [rip+offset]
code.emitInt(0xDEADDEAD);
return ret;
}
示例4: emitDataItem
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
public DataSectionReference emitDataItem(HotSpotConstant c) {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(data.position());
recordDataPatchInData(new ConstantReference((VMConstant) c));
if (c.isCompressed()) {
data.emitInt(0xDEADDEAD);
} else {
data.emitLong(0xDEADDEADDEADDEADL);
}
return ref;
}
示例5: loadLongToRegister
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
private void loadLongToRegister(long c, Register ret) {
DataSectionReference ref = new DataSectionReference();
data.align(8);
ref.setOffset(data.position());
data.emitLong(c);
emitLoadPointerToRegister(ref, ret);
}
示例6: testInvalidDataSectionReference
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
@Test(expected = JVMCIError.class)
public void testInvalidDataSectionReference() {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(0);
installEmptyCode(new Site[0], new Assumption[0], new Comment[0], 16, new DataPatch[]{new DataPatch(0, ref)}, null);
}
示例7: testOutOfBoundsDataSectionReference
import jdk.vm.ci.code.site.DataSectionReference; //导入方法依赖的package包/类
@Test(expected = JVMCIError.class)
public void testOutOfBoundsDataSectionReference() {
DataSectionReference ref = new DataSectionReference();
ref.setOffset(0x1000);
installEmptyCode(new Site[]{new DataPatch(0, ref)}, new Assumption[0], new Comment[0], 16, new DataPatch[0], null);
}