[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 12/62] tcg-s390: Eliminate the S constraint.
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 12/62] tcg-s390: Eliminate the S constraint. |
Date: |
Thu, 27 May 2010 13:45:54 -0700 |
R4 is not clobbered until all of the inputs are consumed,
so there's no need to avoid R4 in the qemu_st paths.
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/s390/tcg-target.c | 30 ++++++------------------------
1 files changed, 6 insertions(+), 24 deletions(-)
diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index 455cf6a..2f29728 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -202,20 +202,6 @@ static int tcg_target_get_call_iarg_regs_count(int flags)
return sizeof(tcg_target_call_iarg_regs) / sizeof(int);
}
-static void constraint_softmmu(TCGArgConstraint *ct, const char c)
-{
-#ifdef CONFIG_SOFTMMU
- switch (c) {
- case 'S': /* qemu_st constraint */
- tcg_regset_reset_reg (ct->u.regs, TCG_REG_R4);
- /* fall through */
- case 'L': /* qemu_ld constraint */
- tcg_regset_reset_reg (ct->u.regs, TCG_REG_R3);
- break;
- }
-#endif
- }
-
/* parse target specific constraints */
static int target_parse_constraint(TCGArgConstraint *ct, const char **pct_str)
{
@@ -226,13 +212,9 @@ static int target_parse_constraint(TCGArgConstraint *ct,
const char **pct_str)
ct_str = *pct_str;
switch (ct_str[0]) {
- case 'L': /* qemu_ld constraint */
+ case 'L': /* qemu_ld/st constraint */
tcg_regset_reset_reg (ct->u.regs, TCG_REG_R2);
- constraint_softmmu(ct, 'L');
- break;
- case 'S': /* qemu_st constraint */
- tcg_regset_reset_reg (ct->u.regs, TCG_REG_R2);
- constraint_softmmu(ct, 'S');
+ tcg_regset_reset_reg (ct->u.regs, TCG_REG_R3);
break;
case 'R': /* not R0 */
tcg_regset_reset_reg(ct->u.regs, TCG_REG_R0);
@@ -1239,9 +1221,9 @@ do_logic_i64:
{ INDEX_op_qemu_ld32u, { "r", "L" } },
{ INDEX_op_qemu_ld32s, { "r", "L" } },
- { INDEX_op_qemu_st8, { "S", "S" } },
- { INDEX_op_qemu_st16, { "S", "S" } },
- { INDEX_op_qemu_st32, { "S", "S" } },
+ { INDEX_op_qemu_st8, { "L", "L" } },
+ { INDEX_op_qemu_st16, { "L", "L" } },
+ { INDEX_op_qemu_st32, { "L", "L" } },
#if defined(__s390x__)
{ INDEX_op_mov_i64, { "r", "r" } },
@@ -1261,7 +1243,7 @@ do_logic_i64:
{ INDEX_op_st_i64, { "r", "r" } },
{ INDEX_op_qemu_ld64, { "L", "L" } },
- { INDEX_op_qemu_st64, { "S", "S" } },
+ { INDEX_op_qemu_st64, { "L", "L" } },
{ INDEX_op_add_i64, { "r", "r", "r" } },
{ INDEX_op_mul_i64, { "r", "r", "r" } },
--
1.7.0.1
- Re: [Qemu-devel] [PATCH 02/62] add lost chunks from the original patch, (continued)
- [Qemu-devel] [PATCH 03/62] tcg-s390: Only validate CPUTLBEntry for system mode., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 04/62] tcg-s390: Fix tcg_prepare_qemu_ldst for user mode., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 01/62] S390 TCG target, Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 06/62] s390x: Avoid _llseek., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 05/62] tcg-s390: Move opcode defines to tcg-target.c., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 07/62] s390x: Don't use a linker script for user-only., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 08/62] tcg-s390: Avoid set-but-not-used werrors., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 09/62] tcg-s390: Mark R0 & R15 reserved., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 11/62] tcg-s390: Move tcg_out_mov up and use it throughout., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 12/62] tcg-s390: Eliminate the S constraint.,
Richard Henderson <=
- [Qemu-devel] [PATCH 10/62] tcg-s390: R6 is a function argument register, Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 14/62] tcg-s390: Define tcg_target_reg_names., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 13/62] tcg-s390: Add -m64 and -march to s390x compilation., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 16/62] tcg-s390: Compute is_write in cpu_signal_handler., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 19/62] tcg-s390: Fixup qemu_ld/st opcodes., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 18/62] tcg-s390: Use matching constraints., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 20/62] tcg-s390: Implement setcond., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 15/62] tcg-s390: Update disassembler from binutils head., Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 17/62] tcg-s390: Reorganize instruction emission, Richard Henderson, 2010/05/27
- [Qemu-devel] [PATCH 21/62] tcg-s390: Generalize the direct load/store emission., Richard Henderson, 2010/05/27