src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
changeset 51866 703813b05838
parent 51756 4bd35a5ec694
child 51970 7cbb77546f87
--- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Mon Sep 24 18:44:39 2018 +0200
+++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp	Mon Sep 24 18:19:46 2018 +0100
@@ -822,6 +822,15 @@
   return stub_start_addr;
 }
 
+void MacroAssembler::c2bool(Register x) {
+  // implements x == 0 ? 0 : 1
+  // note: must only look at least-significant byte of x
+  //       since C-style booleans are stored in one byte
+  //       only! (was bug)
+  tst(x, 0xff);
+  cset(x, Assembler::NE);
+}
+
 address MacroAssembler::ic_call(address entry, jint method_index) {
   RelocationHolder rh = virtual_call_Relocation::spec(pc(), method_index);
   // address const_ptr = long_constant((jlong)Universe::non_oop_word());