Mercurial > hg > openjdk > aarch64-port > hotspot
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;