Mercurial > hg > truffle
diff src/cpu/x86/vm/graalRuntime_x86.cpp @ 9595:db2125285960
replaced wb_pre_call and wb_post_call assembler stubs with compiled stubs (GRAAL-81)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 07 May 2013 01:53:01 +0200 |
parents | 743326387173 |
children |
line wrap: on
line diff
--- a/src/cpu/x86/vm/graalRuntime_x86.cpp Tue May 07 01:38:07 2013 +0200 +++ b/src/cpu/x86/vm/graalRuntime_x86.cpp Tue May 07 01:53:01 2013 +0200 @@ -417,7 +417,7 @@ #define __ sasm-> -static OopMap* save_live_registers(GraalStubAssembler* sasm, int num_rt_args, +OopMap* save_live_registers(GraalStubAssembler* sasm, int num_rt_args, bool save_fpu_registers = true) { __ block_comment("save_live_registers"); @@ -588,44 +588,6 @@ OopMapSet* oop_maps = NULL; switch (id) { - case wb_pre_call_id: { - Register obj = j_rarg0; - { - GraalStubFrame f(sasm, "graal_wb_pre_call", dont_gc_arguments); - OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); - - // 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, wb_pre_call), obj); - - oop_maps = new OopMapSet(); - oop_maps->add_gc_map(call_offset, map); - restore_live_registers(sasm); - } - __ ret(0); - break; - } - case wb_post_call_id: { - Register obj = j_rarg0; - Register caddr = j_rarg1; - { - GraalStubFrame f(sasm, "graal_wb_post_call", dont_gc_arguments); - OopMap* map = save_live_registers(sasm, 2, save_fpu_registers); - - // 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, wb_post_call), obj, caddr); - - oop_maps = new OopMapSet(); - oop_maps->add_gc_map(call_offset, map); - restore_live_registers(sasm); - } - __ ret(0); - break; - } - default: { GraalStubFrame f(sasm, "unimplemented entry", dont_gc_arguments); __ movptr(rax, (int)id);