Thu, 16 Nov 2017 17:27:00 +0800
[G1] G1 runs OK for SPECjvm2008.
src/cpu/mips/vm/templateInterpreter_mips_64.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/templateInterpreter_mips_64.cpp Wed Nov 08 10:07:02 2017 +0800 1.2 +++ b/src/cpu/mips/vm/templateInterpreter_mips_64.cpp Thu Nov 16 17:27:00 2017 +0800 1.3 @@ -818,6 +818,7 @@ 1.4 const Address field_address(V0, referent_offset); 1.5 __ load_heap_oop(V0, field_address); 1.6 1.7 + __ push(RA); 1.8 // Generate the G1 pre-barrier code to log the value of 1.9 // the referent field in an SATB buffer. 1.10 __ g1_write_barrier_pre(noreg /* obj */, 1.11 @@ -826,11 +827,10 @@ 1.12 Rmethod /* tmp */, 1.13 true /* tosca_live */, 1.14 true /* expand_call */); 1.15 - 1.16 - __ move(SP, Rsender); // set sp to sender sp 1.17 + __ pop(RA); 1.18 1.19 __ jr(RA); 1.20 - __ nop(); 1.21 + __ delayed()->daddu(SP, Rsender, R0); // set sp to sender sp 1.22 1.23 // generate a vanilla interpreter entry as the slow path 1.24 __ bind(slow_path);