diff 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
line wrap: on
line diff
--- a/src/cpu/ppc/vm/interpreter_ppc.cpp	Tue Jan 26 10:24:49 2016 -0800
+++ b/src/cpu/ppc/vm/interpreter_ppc.cpp	Wed Jan 27 15:01:46 2016 +0100
@@ -632,6 +632,16 @@
     __ blr();
   }
 
+  if (branch_table[ztos] == 0) { // generate only once
+    __ align(32, 28, 28); // align load
+    __ fence(); // volatile entry point (one instruction before non-volatile_entry point)
+    branch_table[ztos] = __ pc(); // non-volatile_entry point
+    __ lbzx(R3_RET, Rclass_or_obj, Roffset);
+    __ extsb(R3_RET, R3_RET);
+    __ beq(CCR6, Lacquire);
+    __ blr();
+  }
+
   if (branch_table[ctos] == 0) { // generate only once
     __ align(32, 28, 28); // align load
     __ fence(); // volatile entry point (one instruction before non-volatile_entry point)