mirror of
https://github.com/mii443/qemu.git
synced 2025-12-09 14:08:32 +00:00
tcg: Split tcg_gen_callN
Make tcg_gen_callN a static function. Create tcg_gen_call[0-7]
functions for use by helper-gen.h.inc.
Removes a multiplicty of calls to __stack_chk_fail, saving up
to 143kiB of .text space as measured on an x86_64 host.
Old New Less %Change
8888680 8741816 146864 1.65% qemu-system-aarch64
5911832 5856152 55680 0.94% qemu-system-riscv64
5816728 5767512 49216 0.85% qemu-system-mips64
6707832 6659144 48688 0.73% qemu-system-ppc64
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
@@ -939,7 +939,19 @@ typedef struct TCGTargetOpDef {
|
||||
|
||||
bool tcg_op_supported(TCGOpcode op);
|
||||
|
||||
void tcg_gen_callN(TCGHelperInfo *, TCGTemp *ret, int nargs, TCGTemp **args);
|
||||
void tcg_gen_call0(TCGHelperInfo *, TCGTemp *ret);
|
||||
void tcg_gen_call1(TCGHelperInfo *, TCGTemp *ret, TCGTemp *);
|
||||
void tcg_gen_call2(TCGHelperInfo *, TCGTemp *ret, TCGTemp *, TCGTemp *);
|
||||
void tcg_gen_call3(TCGHelperInfo *, TCGTemp *ret, TCGTemp *,
|
||||
TCGTemp *, TCGTemp *);
|
||||
void tcg_gen_call4(TCGHelperInfo *, TCGTemp *ret, TCGTemp *, TCGTemp *,
|
||||
TCGTemp *, TCGTemp *);
|
||||
void tcg_gen_call5(TCGHelperInfo *, TCGTemp *ret, TCGTemp *, TCGTemp *,
|
||||
TCGTemp *, TCGTemp *, TCGTemp *);
|
||||
void tcg_gen_call6(TCGHelperInfo *, TCGTemp *ret, TCGTemp *, TCGTemp *,
|
||||
TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *);
|
||||
void tcg_gen_call7(TCGHelperInfo *, TCGTemp *ret, TCGTemp *, TCGTemp *,
|
||||
TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *, TCGTemp *);
|
||||
|
||||
TCGOp *tcg_emit_op(TCGOpcode opc, unsigned nargs);
|
||||
void tcg_op_remove(TCGContext *s, TCGOp *op);
|
||||
|
||||
Reference in New Issue
Block a user