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 | 67 | }; |
| 68 | 68 | |
| 69 | 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 | 84 | TCG_REG_R3, |
| 74 | 85 | TCG_REG_R4, |
| 75 | 86 | TCG_REG_R5, |
| ... | ... | @@ -81,24 +92,13 @@ static const int tcg_target_reg_alloc_order[] = { |
| 81 | 92 | TCG_REG_R11, |
| 82 | 93 | TCG_REG_R12, |
| 83 | 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 | 98 | TCG_REG_R24, |
| 95 | 99 | TCG_REG_R25, |
| 96 | 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 | 104 | static const int tcg_target_call_iarg_regs[] = { | ... | ... |