changeset 7551:07ecc743c580

C1: Correct types for double-double stack move.
author aph
date Wed, 17 Sep 2014 04:04:58 -0400
parents 9200b9e93039
children 2fb893b1a255
files src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Wed Sep 17 04:02:47 2014 -0400
+++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Wed Sep 17 04:04:58 2014 -0400
@@ -906,7 +906,7 @@
     if (type == T_ARRAY || type == T_OBJECT) {
       __ ldr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
       __ verify_oop(dest->as_register());
-    } else if (type == T_METADATA || type == T_DOUBLE) {
+    } else if (type == T_METADATA) {
       __ ldr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
     } else {
       __ ldrw(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
@@ -959,8 +959,9 @@
 }
 
 void LIR_Assembler::stack2stack(LIR_Opr src, LIR_Opr dest, BasicType type) {
+
   LIR_Opr temp;
-  if (type == T_LONG)
+  if (type == T_LONG || type == T_DOUBLE)
     temp = FrameMap::rscratch1_long_opr;
   else
     temp = FrameMap::rscratch1_opr;