comparison src/cpu/ppc/vm/interpreter_ppc.cpp @ 23858:737b321e6f0e

8148487: PPC64: Better byte behavior Reviewed-by: goetz, mdoerr
author simonis
date Wed, 27 Jan 2016 15:01:46 +0100
parents 231481a06214
children 7d1074c74d60
comparison
equal deleted inserted replaced
23857:bd18d7ff1a4e 23858:737b321e6f0e
630 __ extsb(R3_RET, R3_RET); 630 __ extsb(R3_RET, R3_RET);
631 __ beq(CCR6, Lacquire); 631 __ beq(CCR6, Lacquire);
632 __ blr(); 632 __ blr();
633 } 633 }
634 634
635 if (branch_table[ztos] == 0) { // generate only once
636 __ align(32, 28, 28); // align load
637 __ fence(); // volatile entry point (one instruction before non-volatile_entry point)
638 branch_table[ztos] = __ pc(); // non-volatile_entry point
639 __ lbzx(R3_RET, Rclass_or_obj, Roffset);
640 __ extsb(R3_RET, R3_RET);
641 __ beq(CCR6, Lacquire);
642 __ blr();
643 }
644
635 if (branch_table[ctos] == 0) { // generate only once 645 if (branch_table[ctos] == 0) { // generate only once
636 __ align(32, 28, 28); // align load 646 __ align(32, 28, 28); // align load
637 __ fence(); // volatile entry point (one instruction before non-volatile_entry point) 647 __ fence(); // volatile entry point (one instruction before non-volatile_entry point)
638 branch_table[ctos] = __ pc(); // non-volatile_entry point 648 branch_table[ctos] = __ pc(); // non-volatile_entry point
639 __ lhzx(R3_RET, Rclass_or_obj, Roffset); 649 __ lhzx(R3_RET, Rclass_or_obj, Roffset);