# HG changeset patch # User enevill # Date 1428655314 0 # Fri Apr 10 08:41:54 2015 +0000 # Node ID b698a2de2574eefcfd19fa10c7ae9f067183d7c8 # Parent 9c916db4bf3bc164a47b5a9cefe5ffd71e111f6a 8075930: AARCH64: Use FP Register in C2 diff --git a/src/cpu/aarch64/vm/aarch64.ad b/src/cpu/aarch64/vm/aarch64.ad --- a/src/cpu/aarch64/vm/aarch64.ad +++ b/src/cpu/aarch64/vm/aarch64.ad @@ -132,8 +132,8 @@ reg_def R27_H ( NS, SOE, Op_RegI, 27, r27->as_VMReg()->next()); reg_def R28 ( NS, SOE, Op_RegI, 28, r28->as_VMReg() ); // thread reg_def R28_H ( NS, SOE, Op_RegI, 28, r28->as_VMReg()->next()); -reg_def R29 ( NS, NS, Op_RegI, 29, r29->as_VMReg() ); // fp -reg_def R29_H ( NS, NS, Op_RegI, 29, r29->as_VMReg()->next()); +reg_def R29 ( NS, SOE, Op_RegI, 29, r29->as_VMReg() ); // fp +reg_def R29_H ( NS, SOE, Op_RegI, 29, r29->as_VMReg()->next()); reg_def R30 ( NS, NS, Op_RegI, 30, r30->as_VMReg() ); // lr reg_def R30_H ( NS, NS, Op_RegI, 30, r30->as_VMReg()->next()); reg_def R31 ( NS, NS, Op_RegI, 31, r31_sp->as_VMReg() ); // sp @@ -449,7 +449,7 @@ R26 /* R27, */ // heapbase /* R28, */ // thread - /* R29, */ // fp + R29, // fp /* R30, */ // lr /* R31 */ // sp ); @@ -483,7 +483,7 @@ R26, R26_H, /* R27, R27_H, */ // heapbase /* R28, R28_H, */ // thread - /* R29, R29_H, */ // fp + R29, R29_H, // fp /* R30, R30_H, */ // lr /* R31, R31_H */ // sp ); @@ -1744,7 +1744,7 @@ } const RegMask Matcher::method_handle_invoke_SP_save_mask() { - return RegMask(); + return FP_REG_mask(); } // helper for encoding java_to_runtime calls on sim diff --git a/src/cpu/aarch64/vm/frame_aarch64.inline.hpp b/src/cpu/aarch64/vm/frame_aarch64.inline.hpp --- a/src/cpu/aarch64/vm/frame_aarch64.inline.hpp +++ b/src/cpu/aarch64/vm/frame_aarch64.inline.hpp @@ -77,12 +77,6 @@ inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address pc) { intptr_t a = intptr_t(sp); intptr_t b = intptr_t(fp); -#ifndef PRODUCT - if (fp) - if (sp > fp || (fp - sp > 0x100000)) - for(;;) - asm("nop"); -#endif _sp = sp; _unextended_sp = unextended_sp; _fp = fp; @@ -104,12 +98,6 @@ inline frame::frame(intptr_t* sp, intptr_t* fp) { intptr_t a = intptr_t(sp); intptr_t b = intptr_t(fp); -#ifndef PRODUCT - if (fp) - if (sp > fp || (fp - sp > 0x100000)) - for(;;) - asm("nop"); -#endif _sp = sp; _unextended_sp = sp; _fp = fp;