diff options
author | Richard Henderson <rth@twiddle.net> | 2016-12-08 10:52:57 -0800 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2017-10-24 21:34:47 +0200 |
commit | 75e8b9b7aa0b95a761b9add7e2f09248b101a392 (patch) | |
tree | eddef455cbd05a0a427c42597ecd295248563dc3 /tcg/optimize.c | |
parent | 3d7196d43bfe12efe98568cb60057e273652b99b (diff) | |
download | qemu-75e8b9b7aa0b95a761b9add7e2f09248b101a392.zip qemu-75e8b9b7aa0b95a761b9add7e2f09248b101a392.tar.gz qemu-75e8b9b7aa0b95a761b9add7e2f09248b101a392.tar.bz2 |
tcg: Merge opcode arguments into TCGOp
Rather than have a separate buffer of 10*max_ops entries,
give each opcode 10 entries. The result is actually a bit
smaller and should have slightly more cache locality.
Reviewed-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/optimize.c')
-rw-r--r-- | tcg/optimize.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tcg/optimize.c b/tcg/optimize.c index adfc56c..002aad6 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -576,7 +576,7 @@ void tcg_optimize(TCGContext *s) TCGArg tmp; TCGOp * const op = &s->gen_op_buf[oi]; - TCGArg * const args = &s->gen_opparam_buf[op->args]; + TCGArg * const args = op->args; TCGOpcode opc = op->opc; const TCGOpDef *def = &tcg_op_defs[opc]; @@ -1184,7 +1184,7 @@ void tcg_optimize(TCGContext *s) uint64_t b = ((uint64_t)bh << 32) | bl; TCGArg rl, rh; TCGOp *op2 = tcg_op_insert_before(s, op, INDEX_op_movi_i32, 2); - TCGArg *args2 = &s->gen_opparam_buf[op2->args]; + TCGArg *args2 = op2->args; if (opc == INDEX_op_add2_i32) { a += b; @@ -1210,7 +1210,7 @@ void tcg_optimize(TCGContext *s) uint64_t r = (uint64_t)a * b; TCGArg rl, rh; TCGOp *op2 = tcg_op_insert_before(s, op, INDEX_op_movi_i32, 2); - TCGArg *args2 = &s->gen_opparam_buf[op2->args]; + TCGArg *args2 = op2->args; rl = args[0]; rh = args[1]; |