mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
tcg: Introduce tcg_splitwx_to_{rx,rw}
Add two helper functions, using a global variable to hold the displacement. The displacement is currently always 0, so no change in behaviour. Begin using the functions in tcg common code only. Reviewed-by: Joelle van Dyne <j@getutm.app> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
4846cd37df
commit
db0c51a380
13 changed files with 105 additions and 40 deletions
|
@ -140,6 +140,8 @@ static int tcg_out_pool_finalize(TCGContext *s)
|
|||
|
||||
for (; p != NULL; p = p->next) {
|
||||
size_t size = sizeof(tcg_target_ulong) * p->nlong;
|
||||
uintptr_t value;
|
||||
|
||||
if (!l || l->nlong != p->nlong || memcmp(l->data, p->data, size)) {
|
||||
if (unlikely(a > s->code_gen_highwater)) {
|
||||
return -1;
|
||||
|
@ -148,7 +150,9 @@ static int tcg_out_pool_finalize(TCGContext *s)
|
|||
a += size;
|
||||
l = p;
|
||||
}
|
||||
if (!patch_reloc(p->label, p->rtype, (intptr_t)a - size, p->addend)) {
|
||||
|
||||
value = (uintptr_t)tcg_splitwx_to_rx(a) - size;
|
||||
if (!patch_reloc(p->label, p->rtype, value, p->addend)) {
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue