mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
tcg: Add TCGHelperInfo argument to tcg_out_call
This eliminates an ifdef for TCI, and will be required for expanding the call for TCGv_i128. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
fa3cb9f9ff
commit
cee44b037b
11 changed files with 49 additions and 32 deletions
|
@ -1131,7 +1131,7 @@ static void tcg_out_goto(TCGContext *s, ARMCond cond, const tcg_insn_unit *addr)
|
|||
* The call case is mostly used for helpers - so it's not unreasonable
|
||||
* for them to be beyond branch range.
|
||||
*/
|
||||
static void tcg_out_call(TCGContext *s, const tcg_insn_unit *addr)
|
||||
static void tcg_out_call_int(TCGContext *s, const tcg_insn_unit *addr)
|
||||
{
|
||||
intptr_t addri = (intptr_t)addr;
|
||||
ptrdiff_t disp = tcg_pcrel_diff(s, addr);
|
||||
|
@ -1150,6 +1150,12 @@ static void tcg_out_call(TCGContext *s, const tcg_insn_unit *addr)
|
|||
tcg_out_blx_reg(s, COND_AL, TCG_REG_TMP);
|
||||
}
|
||||
|
||||
static void tcg_out_call(TCGContext *s, const tcg_insn_unit *addr,
|
||||
const TCGHelperInfo *info)
|
||||
{
|
||||
tcg_out_call_int(s, addr);
|
||||
}
|
||||
|
||||
static void tcg_out_goto_label(TCGContext *s, ARMCond cond, TCGLabel *l)
|
||||
{
|
||||
if (l->has_value) {
|
||||
|
@ -1515,7 +1521,7 @@ static bool tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb)
|
|||
argreg = tcg_out_arg_reg32(s, argreg, TCG_REG_R14);
|
||||
|
||||
/* Use the canonical unsigned helpers and minimize icache usage. */
|
||||
tcg_out_call(s, qemu_ld_helpers[opc & MO_SIZE]);
|
||||
tcg_out_call_int(s, qemu_ld_helpers[opc & MO_SIZE]);
|
||||
|
||||
datalo = lb->datalo_reg;
|
||||
datahi = lb->datahi_reg;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue