diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-11-11 10:09:37 +1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2023-01-05 11:41:29 -0800 |
commit | 39004a71d8f6b61501e41be21cc874272c78212f (patch) | |
tree | 91069224f04f81257174e64f8d9062234b9f25a2 /include/exec | |
parent | 31fd884b2e53dc50328dd616667c745fc4808fd1 (diff) | |
download | qemu-39004a71d8f6b61501e41be21cc874272c78212f.zip qemu-39004a71d8f6b61501e41be21cc874272c78212f.tar.gz qemu-39004a71d8f6b61501e41be21cc874272c78212f.tar.bz2 |
tcg: Reorg function calls
Pre-compute the function call layout for each helper at startup.
Drop TCG_CALL_DUMMY_ARG, as we no longer need to leave gaps
in the op->args[] array. This allows several places to stop
checking for NULL TCGTemp, to which TCG_CALL_DUMMY_ARG mapped.
For tcg_gen_callN, loop over the arguments once. Allocate the TCGOp
for the call early but delay emitting it, collecting arguments first.
This allows the argument processing loop to emit code for extensions
and have them sequenced before the call.
For tcg_reg_alloc_call, loop over the arguments in reverse order,
which allows stack slots to be filled first naturally.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/helper-head.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/exec/helper-head.h b/include/exec/helper-head.h index 8bdf0f6..bc6698b 100644 --- a/include/exec/helper-head.h +++ b/include/exec/helper-head.h @@ -133,4 +133,6 @@ #define DEF_HELPER_7(name, ret, t1, t2, t3, t4, t5, t6, t7) \ DEF_HELPER_FLAGS_7(name, 0, ret, t1, t2, t3, t4, t5, t6, t7) +/* MAX_CALL_IARGS must be set to n if last entry is DEF_HELPER_FLAGS_n. */ + #endif /* EXEC_HELPER_HEAD_H */ |