# HG changeset patch # User mdoerr # Date 1616655304 -28800 # Node ID 655498b9a44d88e3dc514626ce8a28ef0abc6f3c # Parent 85c5bc8157df45d7351c388f18ab65297b5bdd01 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 diff -r 85c5bc8157df -r 655498b9a44d src/cpu/aarch64/vm/c1_FrameMap_aarch64.cpp --- 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); } diff -r 85c5bc8157df -r 655498b9a44d src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp --- 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()));