Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_Runtime1.hpp @ 1429:abc670a709dc
* -XX:TraceC1X=0...5 controls the native c1x tracing
* -Dc1x.debug=true turns on the logging proxies and lots of log output on the java side
* provide more information about types to the compiler (type hierarchy, etc)
* provide exception handler tables to the compiler
* add exception handlers to the nmethod
* correct implementation of ExceptionObject
* exception handling/unwinding entry points
* modified versions of handle/unwind exception stubs using standard calling conventions
* exception throwing
* implicit null pointer exception, implicit div by 0 exception
* arraystore/classcast/arrayindex exceptions
* checkcast implementation
* newarray, anewarray, multinewarray implementation
* correct new instance initialization
* access to java class mirrors (for ldc)
* unresolved methods
* class resolving - class patching (asssembly prototype copying)
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Tue, 31 Aug 2010 22:13:30 -0700 |
parents | 37f87013dfd8 |
children | 72cfb36c6bb2 |
comparison
equal
deleted
inserted
replaced
1428:695451afc619 | 1429:abc670a709dc |
---|---|
58 stub(jvmti_exception_throw) \ | 58 stub(jvmti_exception_throw) \ |
59 stub(g1_pre_barrier_slow) \ | 59 stub(g1_pre_barrier_slow) \ |
60 stub(g1_post_barrier_slow) \ | 60 stub(g1_post_barrier_slow) \ |
61 stub(fpu2long_stub) \ | 61 stub(fpu2long_stub) \ |
62 stub(counter_overflow) \ | 62 stub(counter_overflow) \ |
63 stub(c1x_unwind_exception_call) \ | |
64 stub(c1x_handle_exception) \ | |
65 stub(c1x_global_implicit_null) \ | |
66 stub(c1x_throw_div0_exception) \ | |
67 stub(c1x_slow_subtype_check) \ | |
63 last_entry(number_of_ids) | 68 last_entry(number_of_ids) |
64 | 69 |
65 #define DECLARE_STUB_ID(x) x ## _id , | 70 #define DECLARE_STUB_ID(x) x ## _id , |
66 #define DECLARE_LAST_STUB_ID(x) x | 71 #define DECLARE_LAST_STUB_ID(x) x |
67 #define STUB_NAME(x) #x " Runtime1 stub", | 72 #define STUB_NAME(x) #x " Runtime1 stub", |
122 // stub generation | 127 // stub generation |
123 static void generate_blob_for(StubID id); | 128 static void generate_blob_for(StubID id); |
124 static OopMapSet* generate_code_for(StubID id, StubAssembler* masm); | 129 static OopMapSet* generate_code_for(StubID id, StubAssembler* masm); |
125 static OopMapSet* generate_exception_throw(StubAssembler* sasm, address target, bool has_argument); | 130 static OopMapSet* generate_exception_throw(StubAssembler* sasm, address target, bool has_argument); |
126 static void generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map, bool ignore_fpu_registers = false); | 131 static void generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map, bool ignore_fpu_registers = false); |
132 static void c1x_generate_handle_exception(StubAssembler *sasm, OopMapSet* oop_maps, OopMap* oop_map); | |
127 static void generate_unwind_exception(StubAssembler *sasm); | 133 static void generate_unwind_exception(StubAssembler *sasm); |
128 static OopMapSet* generate_patching(StubAssembler* sasm, address target); | 134 static OopMapSet* generate_patching(StubAssembler* sasm, address target); |
129 | 135 |
130 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry, | 136 static OopMapSet* generate_stub_call(StubAssembler* sasm, Register result, address entry, |
131 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg); | 137 Register arg1 = noreg, Register arg2 = noreg, Register arg3 = noreg); |