< prev index next >

src/share/vm/c1/c1_LIR.cpp

Print this page

        

@@ -65,11 +65,11 @@
   return FrameMap::nr2floatreg(fpu_regnrHi());
 }
 
 #endif
 
-#ifdef ARM
+#if defined(ARM) || defined(AARCH64)
 
 FloatRegister LIR_OprDesc::as_float_reg() const {
   return as_FloatRegister(fpu_regnr());
 }
 

@@ -147,11 +147,15 @@
   assert(scale() == times_1, "Scaled addressing mode not available on SPARC/PPC and should not be used");
   assert(disp() == 0 || index()->is_illegal(), "can't have both");
 #endif
 #ifdef _LP64
   assert(base()->is_cpu_register(), "wrong base operand");
+#ifndef AARCH64
   assert(index()->is_illegal() || index()->is_double_cpu(), "wrong index operand");
+#else
+  assert(index()->is_illegal() || index()->is_double_cpu() || index()->is_single_cpu(), "wrong index operand");
+#endif
   assert(base()->type() == T_OBJECT || base()->type() == T_LONG || base()->type() == T_METADATA,
          "wrong type for addresses");
 #else
   assert(base()->is_single_cpu(), "wrong base operand");
   assert(index()->is_illegal() || index()->is_single_cpu(), "wrong index operand");

@@ -554,11 +558,11 @@
       LIR_OpConvert* opConvert = (LIR_OpConvert*)op;
 
       assert(opConvert->_info == NULL, "must be");
       if (opConvert->_opr->is_valid())       do_input(opConvert->_opr);
       if (opConvert->_result->is_valid())    do_output(opConvert->_result);
-#ifdef PPC
+#if defined(PPC) || defined(AARCH64)
       if (opConvert->_tmp1->is_valid())      do_temp(opConvert->_tmp1);
       if (opConvert->_tmp2->is_valid())      do_temp(opConvert->_tmp2);
 #endif
       do_stub(opConvert->_stub);
 

@@ -1572,11 +1576,16 @@
   } else if (is_single_cpu()) {
     out->print("%s", as_register()->name());
   } else if (is_double_cpu()) {
     out->print("%s", as_register_hi()->name());
     out->print("%s", as_register_lo()->name());
-#if defined(X86)
+#if defined(AARCH64)
+  } else if (is_single_fpu()) {
+    out->print("fpu%d", fpu_regnr());
+  } else if (is_double_fpu()) {
+    out->print("fpu%d", fpu_regnrLo());
+#elif defined(X86)
   } else if (is_single_xmm()) {
     out->print("%s", as_xmm_float_reg()->name());
   } else if (is_double_xmm()) {
     out->print("%s", as_xmm_double_reg()->name());
   } else if (is_single_fpu()) {

@@ -1969,11 +1978,11 @@
 // LIR_OpConvert
 void LIR_OpConvert::print_instr(outputStream* out) const {
   print_bytecode(out, bytecode());
   in_opr()->print(out);                  out->print(" ");
   result_opr()->print(out);              out->print(" ");
-#ifdef PPC
+#if defined(PPC) || defined(AARCH64)
   if(tmp1()->is_valid()) {
     tmp1()->print(out); out->print(" ");
     tmp2()->print(out); out->print(" ");
   }
 #endif
< prev index next >