Mercurial > hg > graal-compiler
comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java @ 1433:efba53f86c4f
various fixes and enhancements
* correct refmap->oopmap conversion (register numbering, stack slot numbering)
* fixes for inlining (correct scoping in exception handler lookup, NPE in scope conversion)
* support for "jump to runtime stub" (patching code needs to be aware of jmp instruction)
* provide more information about methods (to allow inlining: has_balanced_monitors, etc.)
* fixes to signature type lookup
* isSubTypeOf: correct handling of array classes
* RiType: componentType/arrayOf
* prologue: inline cache check, icmiss stub
* klass state check (resolved but not initialized) in newinstance
* card table write barriers
* c1x classes are optional (to allow running c1 without them)
* correct for stored frame pointer in calling conventions (methods with arguments on stack)
* getType(Class<?>) for some basic types, used for optimizations and folding
* RiMethod/RiType: throw exception instead of silent failure on unsupported operations
* RiType: resolved/unresolved array type support
* refactoring: new on-demand template generation mechanism
* optimizations: template specialization for no_null_check, given length, etc.
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 16 Sep 2010 19:42:20 -0700 |
parents | abc670a709dc |
children | 72cfb36c6bb2 |
comparison
equal
deleted
inserted
replaced
1432:b61a43cd1255 | 1433:efba53f86c4f |
---|---|
33 // offsets, ... | 33 // offsets, ... |
34 public int vmPageSize; | 34 public int vmPageSize; |
35 public int stackShadowPages; | 35 public int stackShadowPages; |
36 public int hubOffset; | 36 public int hubOffset; |
37 public int arrayLengthOffset; | 37 public int arrayLengthOffset; |
38 public int klassStateOffset; | |
39 public int klassStateFullyInitialized; | |
38 public int[] arrayOffsets; | 40 public int[] arrayOffsets; |
39 public int arrayClassElementOffset; | 41 public int arrayClassElementOffset; |
40 public int threadTlabTopOffset; | 42 public int threadTlabTopOffset; |
41 public int threadTlabEndOffset; | 43 public int threadTlabEndOffset; |
42 public int instanceHeaderPrototypeOffset; | 44 public int instanceHeaderPrototypeOffset; |
43 public int threadExceptionOopOffset; | 45 public int threadExceptionOopOffset; |
44 public int threadExceptionPcOffset; | 46 public int threadExceptionPcOffset; |
45 public int threadMultiNewArrayStorage; | 47 public int threadMultiNewArrayStorage; |
48 public long cardtableStartAddress; | |
49 public int cardtableShift; | |
46 | 50 |
47 // runtime stubs | 51 // runtime stubs |
48 public long debugStub; | 52 public long debugStub; |
49 public long instanceofStub; | 53 public long instanceofStub; |
50 public long newInstanceStub; | 54 public long newInstanceStub; |
55 public long unresolvedNewInstanceStub; | |
51 public long newTypeArrayStub; | 56 public long newTypeArrayStub; |
52 public long newObjectArrayStub; | 57 public long newObjectArrayStub; |
53 public long newMultiArrayStub; | 58 public long newMultiArrayStub; |
54 public long loadKlassStub; | 59 public long loadKlassStub; |
60 public long accessFieldStub; | |
55 public long resolveStaticCallStub; | 61 public long resolveStaticCallStub; |
62 public long inlineCacheMissStub; | |
56 public long unwindExceptionStub; | 63 public long unwindExceptionStub; |
57 public long handleExceptionStub; | 64 public long handleExceptionStub; |
58 public long throwClassCastException; | 65 public long throwClassCastException; |
59 public long throwArrayStoreException; | 66 public long throwArrayStoreException; |
60 public long throwArrayIndexException; | 67 public long throwArrayIndexException; |
68 public long monitorEnterStub; | |
69 public long monitorExitStub; | |
61 | 70 |
62 public void check() { | 71 public void check() { |
63 assert vmPageSize >= 16; | 72 assert vmPageSize >= 16; |
64 assert codeEntryAlignment > 0; | 73 assert codeEntryAlignment > 0; |
65 assert stackShadowPages > 0; | 74 assert stackShadowPages > 0; |