Mercurial > hg > graal-jvmci-8
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); |