Commit a35e86c55fa2858c7828058f2e59956597aaa7af
1 parent
d50997f9
Shuffle contents of tcg_target_reg_alloc_order
Move reserved/volatile registers down. Currently qemu_ld/stXX are marked with TCG_OPF_CALL_CLOBBER and since memory accesses are frequent and R3 through R12 are volatile moving this down results in less spills and tighter generated code. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4778 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
18 additions
and
18 deletions
tcg/ppc/tcg-target.c
| @@ -67,9 +67,20 @@ static const char * const tcg_target_reg_names[TCG_TARGET_NB_REGS] = { | @@ -67,9 +67,20 @@ static const char * const tcg_target_reg_names[TCG_TARGET_NB_REGS] = { | ||
| 67 | }; | 67 | }; |
| 68 | 68 | ||
| 69 | static const int tcg_target_reg_alloc_order[] = { | 69 | static const int tcg_target_reg_alloc_order[] = { |
| 70 | - TCG_REG_R0, | ||
| 71 | - TCG_REG_R1, | ||
| 72 | - TCG_REG_R2, | 70 | + TCG_REG_R14, |
| 71 | + TCG_REG_R15, | ||
| 72 | + TCG_REG_R16, | ||
| 73 | + TCG_REG_R17, | ||
| 74 | + TCG_REG_R18, | ||
| 75 | + TCG_REG_R19, | ||
| 76 | + TCG_REG_R20, | ||
| 77 | + TCG_REG_R21, | ||
| 78 | + TCG_REG_R22, | ||
| 79 | + TCG_REG_R23, | ||
| 80 | + TCG_REG_R28, | ||
| 81 | + TCG_REG_R29, | ||
| 82 | + TCG_REG_R30, | ||
| 83 | + TCG_REG_R31, | ||
| 73 | TCG_REG_R3, | 84 | TCG_REG_R3, |
| 74 | TCG_REG_R4, | 85 | TCG_REG_R4, |
| 75 | TCG_REG_R5, | 86 | TCG_REG_R5, |
| @@ -81,24 +92,13 @@ static const int tcg_target_reg_alloc_order[] = { | @@ -81,24 +92,13 @@ static const int tcg_target_reg_alloc_order[] = { | ||
| 81 | TCG_REG_R11, | 92 | TCG_REG_R11, |
| 82 | TCG_REG_R12, | 93 | TCG_REG_R12, |
| 83 | TCG_REG_R13, | 94 | TCG_REG_R13, |
| 84 | - TCG_REG_R14, | ||
| 85 | - TCG_REG_R15, | ||
| 86 | - TCG_REG_R16, | ||
| 87 | - TCG_REG_R17, | ||
| 88 | - TCG_REG_R18, | ||
| 89 | - TCG_REG_R19, | ||
| 90 | - TCG_REG_R20, | ||
| 91 | - TCG_REG_R21, | ||
| 92 | - TCG_REG_R22, | ||
| 93 | - TCG_REG_R23, | 95 | + TCG_REG_R0, |
| 96 | + TCG_REG_R1, | ||
| 97 | + TCG_REG_R2, | ||
| 94 | TCG_REG_R24, | 98 | TCG_REG_R24, |
| 95 | TCG_REG_R25, | 99 | TCG_REG_R25, |
| 96 | TCG_REG_R26, | 100 | TCG_REG_R26, |
| 97 | - TCG_REG_R27, | ||
| 98 | - TCG_REG_R28, | ||
| 99 | - TCG_REG_R29, | ||
| 100 | - TCG_REG_R30, | ||
| 101 | - TCG_REG_R31 | 101 | + TCG_REG_R27 |
| 102 | }; | 102 | }; |
| 103 | 103 | ||
| 104 | static const int tcg_target_call_iarg_regs[] = { | 104 | static const int tcg_target_call_iarg_regs[] = { |