throw new BuildException("JUMP_MAIN_OFFSET is incorrect ["
+ offset + " instead of " + JUMP_MAIN_OFFSET()
+ "] (set to Object headersize)");
}
final X86BinaryAssembler os86 = (X86BinaryAssembler) os;
final Label introCode = new Label("$$introCode");
os86.setObjectRef(new Label("$$jmp-introCode"));
os86.writeJMP(introCode);
initObject.markEnd();
// The loading of class can emit object in between, so first load
// all required classes here.
loadClass(Main.class);
loadClass(MonitorManager.class);
loadClass(SoftByteCodes.class);
loadClass(Vm.class);
loadClass(VmMethod.class);
loadClass(VmProcessor.class);
loadClass(VmThread.class);
loadClass(VmType.class);
loadClass(VmSystem.class);
loadClass(VmSystemObject.class);
final X86BinaryAssembler.ObjectInfo initCodeObject = os
.startObject(vmCodeClass);
os86.setObjectRef(introCode);
initMain(os86, pluginRegistry);
initVm(os86, vm);
// initHeapManager(os86, vm);
initVmThread(os86);
os.setObjectRef(new Label("$$Initial call to clInitCaller"));
os86.writeCALL(clInitCaller);
initCallMain(os86);
initCodeObject.markEnd();