changeset 9142:0cdba2db78c6

raw long address should be converted to sizeof(ptr) one when it is required Contributed-by: Fedor Burdun <fedor.burdun@azul.com>
author snazarki
date Thu, 11 Jul 2019 17:33:28 +0300
parents 833ab38a3b4c
children e86b05ee1ad6
files src/cpu/aarch32/vm/c1_LIRGenerator_aarch32.cpp
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch32/vm/c1_LIRGenerator_aarch32.cpp	Thu Jul 11 17:31:50 2019 +0300
+++ b/src/cpu/aarch32/vm/c1_LIRGenerator_aarch32.cpp	Thu Jul 11 17:33:28 2019 +0300
@@ -1106,6 +1106,11 @@
       }
       LIR_Opr base_op = buf.result();
 
+      if (!is_updateBytes) { // long b raw address
+         base_op = new_register(T_INT);
+         __ convert(Bytecodes::_l2i, buf.result(), base_op);
+      }
+
       if (offset) {
         LIR_Opr tmp = new_pointer_register();
         __ add(base_op, LIR_OprFact::intConst(offset), tmp);