Mercurial > hg > icedtea8-forest > hotspot
changeset 10930:655498b9a44d
8264171: Missing aarch64 parts of JDK-8236179 (C1 register allocation failure with T_ADDRESS)
Reviewed-by: rkennke, vlivanov, roland, mdoerr, shade, aph
Contributed-by: Aditya Mandaleeka <adityam@microsoft.com>
author | mdoerr |
---|---|
date | Thu, 25 Mar 2021 14:55:04 +0800 |
parents | 85c5bc8157df |
children | 65907019826a |
files | src/cpu/aarch64/vm/c1_FrameMap_aarch64.cpp src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp |
diffstat | 2 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/c1_FrameMap_aarch64.cpp Thu Jan 18 19:21:11 2018 +0100 +++ b/src/cpu/aarch64/vm/c1_FrameMap_aarch64.cpp Thu Mar 25 14:55:04 2021 +0800 @@ -54,6 +54,8 @@ opr = as_oop_opr(reg); } else if (type == T_METADATA) { opr = as_metadata_opr(reg); + } else if (type == T_ADDRESS) { + opr = as_address_opr(reg); } else { opr = as_opr(reg); }
--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Thu Jan 18 19:21:11 2018 +0100 +++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp Thu Mar 25 14:55:04 2021 +0800 @@ -791,7 +791,7 @@ if (type == T_ARRAY || type == T_OBJECT) { __ str(src->as_register(), frame_map()->address_for_slot(dest->single_stack_ix())); __ verify_oop(src->as_register()); - } else if (type == T_METADATA || type == T_DOUBLE) { + } else if (type == T_METADATA || type == T_DOUBLE || type == T_ADDRESS) { __ str(src->as_register(), frame_map()->address_for_slot(dest->single_stack_ix())); } else { __ strw(src->as_register(), frame_map()->address_for_slot(dest->single_stack_ix())); @@ -904,7 +904,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) { + } else if (type == T_METADATA || type == T_ADDRESS) { __ 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()));