mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
accel/tcg: Use CPUState in atomicity helpers
Makes ldst_atomicity.c.inc almost target-independent, with the exception of TARGET_PAGE_MASK, which will be addressed in a future patch. Signed-off-by: Anton Johansson <anjo@rev.ng> Message-Id: <20230912153428.17816-8-anjo@rev.ng> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
d560225fc4
commit
73fda56f33
3 changed files with 62 additions and 62 deletions
|
@ -2172,7 +2172,7 @@ static uint64_t do_ld_whole_be8(CPUState *cpu, uintptr_t ra,
|
|||
MMULookupPageData *p, uint64_t ret_be)
|
||||
{
|
||||
int o = p->addr & 7;
|
||||
uint64_t x = load_atomic8_or_exit(cpu_env(cpu), ra, p->haddr - o);
|
||||
uint64_t x = load_atomic8_or_exit(cpu, ra, p->haddr - o);
|
||||
|
||||
x = cpu_to_be64(x);
|
||||
x <<= o * 8;
|
||||
|
@ -2192,7 +2192,7 @@ static Int128 do_ld_whole_be16(CPUState *cpu, uintptr_t ra,
|
|||
MMULookupPageData *p, uint64_t ret_be)
|
||||
{
|
||||
int o = p->addr & 15;
|
||||
Int128 x, y = load_atomic16_or_exit(cpu_env(cpu), ra, p->haddr - o);
|
||||
Int128 x, y = load_atomic16_or_exit(cpu, ra, p->haddr - o);
|
||||
int size = p->size;
|
||||
|
||||
if (!HOST_BIG_ENDIAN) {
|
||||
|
@ -2329,7 +2329,7 @@ static uint16_t do_ld_2(CPUState *cpu, MMULookupPageData *p, int mmu_idx,
|
|||
}
|
||||
} else {
|
||||
/* Perform the load host endian, then swap if necessary. */
|
||||
ret = load_atom_2(cpu_env(cpu), ra, p->haddr, memop);
|
||||
ret = load_atom_2(cpu, ra, p->haddr, memop);
|
||||
if (memop & MO_BSWAP) {
|
||||
ret = bswap16(ret);
|
||||
}
|
||||
|
@ -2349,7 +2349,7 @@ static uint32_t do_ld_4(CPUState *cpu, MMULookupPageData *p, int mmu_idx,
|
|||
}
|
||||
} else {
|
||||
/* Perform the load host endian. */
|
||||
ret = load_atom_4(cpu_env(cpu), ra, p->haddr, memop);
|
||||
ret = load_atom_4(cpu, ra, p->haddr, memop);
|
||||
if (memop & MO_BSWAP) {
|
||||
ret = bswap32(ret);
|
||||
}
|
||||
|
@ -2369,7 +2369,7 @@ static uint64_t do_ld_8(CPUState *cpu, MMULookupPageData *p, int mmu_idx,
|
|||
}
|
||||
} else {
|
||||
/* Perform the load host endian. */
|
||||
ret = load_atom_8(cpu_env(cpu), ra, p->haddr, memop);
|
||||
ret = load_atom_8(cpu, ra, p->haddr, memop);
|
||||
if (memop & MO_BSWAP) {
|
||||
ret = bswap64(ret);
|
||||
}
|
||||
|
@ -2528,7 +2528,7 @@ static Int128 do_ld16_mmu(CPUState *cpu, vaddr addr,
|
|||
}
|
||||
} else {
|
||||
/* Perform the load host endian. */
|
||||
ret = load_atom_16(cpu_env(cpu), ra, l.page[0].haddr, l.memop);
|
||||
ret = load_atom_16(cpu, ra, l.page[0].haddr, l.memop);
|
||||
if (l.memop & MO_BSWAP) {
|
||||
ret = bswap128(ret);
|
||||
}
|
||||
|
@ -2880,7 +2880,7 @@ static void do_st_2(CPUState *cpu, MMULookupPageData *p, uint16_t val,
|
|||
if (memop & MO_BSWAP) {
|
||||
val = bswap16(val);
|
||||
}
|
||||
store_atom_2(cpu_env(cpu), ra, p->haddr, memop, val);
|
||||
store_atom_2(cpu, ra, p->haddr, memop, val);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2899,7 +2899,7 @@ static void do_st_4(CPUState *cpu, MMULookupPageData *p, uint32_t val,
|
|||
if (memop & MO_BSWAP) {
|
||||
val = bswap32(val);
|
||||
}
|
||||
store_atom_4(cpu_env(cpu), ra, p->haddr, memop, val);
|
||||
store_atom_4(cpu, ra, p->haddr, memop, val);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2918,7 +2918,7 @@ static void do_st_8(CPUState *cpu, MMULookupPageData *p, uint64_t val,
|
|||
if (memop & MO_BSWAP) {
|
||||
val = bswap64(val);
|
||||
}
|
||||
store_atom_8(cpu_env(cpu), ra, p->haddr, memop, val);
|
||||
store_atom_8(cpu, ra, p->haddr, memop, val);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3045,7 +3045,7 @@ static void do_st16_mmu(CPUState *cpu, vaddr addr, Int128 val,
|
|||
if (l.memop & MO_BSWAP) {
|
||||
val = bswap128(val);
|
||||
}
|
||||
store_atom_16(cpu_env(cpu), ra, l.page[0].haddr, l.memop, val);
|
||||
store_atom_16(cpu, ra, l.page[0].haddr, l.memop, val);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue