8075930: AARCH64: Use FP Register in C2

Modify to allow C2 to allocate FP (R29) as a general register

Reviewed-by: aph, kvn, dlong
This commit is contained in:
Ed Nevill 2015-04-24 11:01:37 +00:00
parent 294d9dce7f
commit 650d8b7cb6
2 changed files with 3 additions and 15 deletions

View File

@ -449,7 +449,7 @@ reg_class no_special_reg32(
R26
/* R27, */ // heapbase
/* R28, */ // thread
/* R29, */ // fp
R29, // fp
/* R30, */ // lr
/* R31 */ // sp
);
@ -483,7 +483,7 @@ reg_class no_special_reg(
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
);
@ -2538,7 +2538,7 @@ RegMask Matcher::modL_proj_mask() {
}
const RegMask Matcher::method_handle_invoke_SP_save_mask() {
return RegMask();
return FP_REG_mask();
}
// helper for encoding java_to_runtime calls on sim

View File

@ -77,12 +77,6 @@ inline frame::frame(intptr_t* sp, intptr_t* fp, address pc) {
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* unextended_sp, intptr_t* fp, address
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;