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;