Mercurial > hg > graal-compiler
comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java @ 1428:695451afc619
refactoring classes into separate files
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 19 Aug 2010 14:34:52 -0700 |
parents | 149b1d2316de |
children | abc670a709dc |
comparison
equal
deleted
inserted
replaced
1427:149b1d2316de | 1428:695451afc619 |
---|---|
33 * | 33 * |
34 * @author Thomas Wuerthinger, Lukas Stadler | 34 * @author Thomas Wuerthinger, Lukas Stadler |
35 */ | 35 */ |
36 public class HotSpotXirGenerator implements RiXirGenerator { | 36 public class HotSpotXirGenerator implements RiXirGenerator { |
37 | 37 |
38 // this needs to correspond to c1x_Compiler.hpp | 38 // this needs to correspond to c1x_CodeInstaller.hpp |
39 private static final Integer MARK_VERIFIED_ENTRY = 1; | 39 private static final Integer MARK_VERIFIED_ENTRY = 0x0001; |
40 private static final Integer MARK_UNVERIFIED_ENTRY = 2; | 40 private static final Integer MARK_UNVERIFIED_ENTRY = 0x0002; |
41 private static final Integer MARK_OSR_ENTRY = 3; | 41 private static final Integer MARK_OSR_ENTRY = 0x0003; |
42 private static final Integer MARK_STATIC_CALL_STUB = 1000; | 42 private static final Integer MARK_STATIC_CALL_STUB = 0x1000; |
43 | 43 private static final Integer MARK_INVOKE_INVALID = 0x2000; |
44 private static final Integer MARK_INVOKE_INVALID = 2000; | 44 private static final Integer MARK_INVOKEINTERFACE = 0x2001; |
45 private static final Integer MARK_INVOKEINTERFACE = 2001; | 45 private static final Integer MARK_INVOKESTATIC = 0x2002; |
46 private static final Integer MARK_INVOKESTATIC = 2002; | 46 private static final Integer MARK_INVOKESPECIAL = 0x2003; |
47 private static final Integer MARK_INVOKESPECIAL = 2003; | 47 private static final Integer MARK_INVOKEVIRTUAL = 0x2004; |
48 private static final Integer MARK_INVOKEVIRTUAL = 2004; | 48 private static final Integer MARK_IMPLICIT_NULL_EXCEPTION_TARGET = 0x3000; |
49 | 49 |
50 private final HotSpotVMConfig config; | 50 private final HotSpotVMConfig config; |
51 private final CiTarget target; | 51 private final CiTarget target; |
52 private final RiRegisterConfig registerConfig; | 52 private final RiRegisterConfig registerConfig; |
53 | 53 |
445 asm.mov(method, asm.w(0l)); | 445 asm.mov(method, asm.w(0l)); |
446 XirLabel dummy = asm.createOutOfLineLabel("dummy"); | 446 XirLabel dummy = asm.createOutOfLineLabel("dummy"); |
447 asm.jmp(dummy); | 447 asm.jmp(dummy); |
448 asm.bindOutOfLine(dummy); | 448 asm.bindOutOfLine(dummy); |
449 | 449 |
450 asm.mark(MARK_IMPLICIT_NULL_EXCEPTION_TARGET, XirMark.CALLSITE); | |
451 asm.callRuntime(config.throwImplicitNullStub, null); | |
452 | |
450 return asm.finishTemplate(addr, "invokespecial"); | 453 return asm.finishTemplate(addr, "invokespecial"); |
451 } | 454 } |
452 | 455 |
453 private XirTemplate buildNewInstance() { | 456 private XirTemplate buildNewInstance() { |
454 XirOperand result = asm.restart(CiKind.Word); | 457 XirOperand result = asm.restart(CiKind.Word); |