Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_Runtime1.cpp @ 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 | 230fac611b50 |
children | 72cfb36c6bb2 |
comparison
equal
deleted
inserted
replaced
1428:695451afc619 | 1429:abc670a709dc |
---|---|
171 case g1_pre_barrier_slow_id: | 171 case g1_pre_barrier_slow_id: |
172 case g1_post_barrier_slow_id: | 172 case g1_post_barrier_slow_id: |
173 case slow_subtype_check_id: | 173 case slow_subtype_check_id: |
174 case fpu2long_stub_id: | 174 case fpu2long_stub_id: |
175 case unwind_exception_id: | 175 case unwind_exception_id: |
176 case c1x_unwind_exception_call_id: | |
177 case c1x_slow_subtype_check_id: | |
176 #ifndef TIERED | 178 #ifndef TIERED |
177 case counter_overflow_id: // Not generated outside the tiered world | 179 case counter_overflow_id: // Not generated outside the tiered world |
178 #endif | 180 #endif |
179 #ifdef SPARC | 181 #ifdef SPARC |
180 case handle_exception_nofpu_id: // Unused on sparc | 182 case handle_exception_nofpu_id: // Unused on sparc |
409 | 411 |
410 | 412 |
411 JRT_ENTRY_NO_ASYNC(static address, exception_handler_for_pc_helper(JavaThread* thread, oopDesc* ex, address pc, nmethod*& nm)) | 413 JRT_ENTRY_NO_ASYNC(static address, exception_handler_for_pc_helper(JavaThread* thread, oopDesc* ex, address pc, nmethod*& nm)) |
412 | 414 |
413 Handle exception(thread, ex); | 415 Handle exception(thread, ex); |
416 if (UseC1X && exception.is_null()) { | |
417 exception = Exceptions::new_exception(thread, vmSymbols::java_lang_NullPointerException(), NULL); | |
418 } | |
414 nm = CodeCache::find_nmethod(pc); | 419 nm = CodeCache::find_nmethod(pc); |
415 assert(nm != NULL, "this is not an nmethod"); | 420 assert(nm != NULL, "this is not an nmethod"); |
416 // Adjust the pc as needed/ | 421 // Adjust the pc as needed/ |
417 if (nm->is_deopt_pc(pc)) { | 422 if (nm->is_deopt_pc(pc)) { |
418 RegisterMap map(thread, false); | 423 RegisterMap map(thread, false); |