Revision bf5675ef tcg/arm/tcg-target.c
b/tcg/arm/tcg-target.c | ||
---|---|---|
1273 | 1273 |
tcg_out_dat_imm(s, COND_AL, ARITH_MOV, TCG_REG_R2, 0, mem_index); |
1274 | 1274 |
break; |
1275 | 1275 |
case 3: |
1276 |
tcg_out_dat_reg(s, COND_AL, ARITH_MOV,
|
|
1277 |
TCG_REG_R1, 0, data_reg, SHIFT_IMM_LSL(0));
|
|
1278 |
if (data_reg2 != TCG_REG_R2) {
|
|
1276 |
tcg_out_dat_imm(s, COND_AL, ARITH_MOV, TCG_REG_R8, 0, mem_index);
|
|
1277 |
tcg_out32(s, (COND_AL << 28) | 0x052d8010); /* str r8, [sp, #-0x10]! */
|
|
1278 |
if (data_reg != TCG_REG_R2) { |
|
1279 | 1279 |
tcg_out_dat_reg(s, COND_AL, ARITH_MOV, |
1280 |
TCG_REG_R2, 0, data_reg2, SHIFT_IMM_LSL(0)); |
|
1280 |
TCG_REG_R2, 0, data_reg, SHIFT_IMM_LSL(0)); |
|
1281 |
} |
|
1282 |
if (data_reg2 != TCG_REG_R3) { |
|
1283 |
tcg_out_dat_reg(s, COND_AL, ARITH_MOV, |
|
1284 |
TCG_REG_R3, 0, data_reg2, SHIFT_IMM_LSL(0)); |
|
1281 | 1285 |
} |
1282 |
tcg_out_dat_imm(s, COND_AL, ARITH_MOV, TCG_REG_R3, 0, mem_index); |
|
1283 | 1286 |
break; |
1284 | 1287 |
} |
1285 | 1288 |
# else |
... | ... | |
1318 | 1321 |
|
1319 | 1322 |
tcg_out_bl(s, COND_AL, (tcg_target_long) qemu_st_helpers[s_bits] - |
1320 | 1323 |
(tcg_target_long) s->code_ptr); |
1321 |
# if TARGET_LONG_BITS == 64 |
|
1322 | 1324 |
if (opc == 3) |
1323 | 1325 |
tcg_out_dat_imm(s, COND_AL, ARITH_ADD, TCG_REG_R13, TCG_REG_R13, 0x10); |
1324 |
# endif |
|
1325 | 1326 |
|
1326 | 1327 |
*label_ptr += ((void *) s->code_ptr - (void *) label_ptr - 8) >> 2; |
1327 | 1328 |
#else /* !CONFIG_SOFTMMU */ |
... | ... | |
1727 | 1728 |
{ INDEX_op_qemu_st8, { "s", "s" } }, |
1728 | 1729 |
{ INDEX_op_qemu_st16, { "s", "s" } }, |
1729 | 1730 |
{ INDEX_op_qemu_st32, { "s", "s" } }, |
1730 |
{ INDEX_op_qemu_st64, { "s", "S", "s" } },
|
|
1731 |
{ INDEX_op_qemu_st64, { "S", "S", "s" } },
|
|
1731 | 1732 |
#else |
1732 | 1733 |
{ INDEX_op_qemu_ld8u, { "r", "l", "l" } }, |
1733 | 1734 |
{ INDEX_op_qemu_ld8s, { "r", "l", "l" } }, |
... | ... | |
1739 | 1740 |
{ INDEX_op_qemu_st8, { "s", "s", "s" } }, |
1740 | 1741 |
{ INDEX_op_qemu_st16, { "s", "s", "s" } }, |
1741 | 1742 |
{ INDEX_op_qemu_st32, { "s", "s", "s" } }, |
1742 |
{ INDEX_op_qemu_st64, { "s", "S", "s", "s" } },
|
|
1743 |
{ INDEX_op_qemu_st64, { "S", "S", "s", "s" } },
|
|
1743 | 1744 |
#endif |
1744 | 1745 |
|
1745 | 1746 |
{ INDEX_op_bswap16_i32, { "r", "r" } }, |
Also available in: Unified diff