Mercurial > hg > graal-jvmci-8
diff src/cpu/x86/vm/graalRuntime_x86.cpp @ 8489:92d21814cf7b
-Implement WB primitive stub call for G1's slow path later
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Tue, 19 Feb 2013 17:57:14 +0100 |
parents | 707e9cca11de |
children | 1567c6cc6561 |
line wrap: on
line diff
--- a/src/cpu/x86/vm/graalRuntime_x86.cpp Tue Feb 19 16:53:10 2013 +0100 +++ b/src/cpu/x86/vm/graalRuntime_x86.cpp Tue Feb 19 17:57:14 2013 +0100 @@ -1192,8 +1192,25 @@ __ ret(0); break; } + case graal_g1_wb_slow_id: { + Register obj = j_rarg0; + { + GraalStubFrame f(sasm, "graal_g1_wb_slow", dont_gc_arguments); + OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); - case graal_identity_hash_code_id: { + // note: really a leaf routine but must setup last java sp + // => use call_RT for now (speed can be improved by + // doing last java sp setup manually) + int call_offset = __ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, graal_g1_wb_slow), obj); + + oop_maps = new OopMapSet(); + oop_maps->add_gc_map(call_offset, map); + restore_live_registers(sasm, save_fpu_registers); + } + __ ret(0); + break; + } + case graal_identity_hash_code_id: { Register obj = j_rarg0; // Incoming __ set_info("identity_hash_code", dont_gc_arguments); __ enter();