Revision 9e97d8e9 tcg/arm/tcg-target.c
b/tcg/arm/tcg-target.c | ||
---|---|---|
1676 | 1676 |
|
1677 | 1677 |
void tcg_target_qemu_prologue(TCGContext *s) |
1678 | 1678 |
{ |
1679 |
/* Theoretically there is no need to save r12, but an
|
|
1680 |
even number of registers to be saved as per EABI */
|
|
1679 |
/* There is no need to save r7, it is used to store the address
|
|
1680 |
of the env structure and is not modified by GCC. */
|
|
1681 | 1681 |
|
1682 |
/* stmdb sp!, { r4 - r12, lr } */
|
|
1683 |
tcg_out32(s, (COND_AL << 28) | 0x092d5ff0);
|
|
1682 |
/* stmdb sp!, { r4 - r6, r8 - r11, lr } */
|
|
1683 |
tcg_out32(s, (COND_AL << 28) | 0x092d4f70);
|
|
1684 | 1684 |
|
1685 | 1685 |
tcg_out_bx(s, COND_AL, TCG_REG_R0); |
1686 | 1686 |
tb_ret_addr = s->code_ptr; |
1687 | 1687 |
|
1688 |
/* ldmia sp!, { r4 - r12, pc } */
|
|
1689 |
tcg_out32(s, (COND_AL << 28) | 0x08bd9ff0);
|
|
1688 |
/* ldmia sp!, { r4 - r6, r8 - r11, pc } */
|
|
1689 |
tcg_out32(s, (COND_AL << 28) | 0x08bd8f70);
|
|
1690 | 1690 |
} |
Also available in: Unified diff