mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
tcg: Widen helper_*_st[bw]_mmu val arguments
While the old type was correct in the ideal sense, some ABIs require the argument to be zero-extended. Using uint32_t for all such values is a decent compromise. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
d78e4a4f7b
commit
35a0bd63b4
2 changed files with 10 additions and 6 deletions
|
@ -2508,7 +2508,7 @@ full_stb_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||||
store_helper(env, addr, val, oi, retaddr, MO_UB);
|
store_helper(env, addr, val, oi, retaddr, MO_UB);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_ret_stb_mmu(CPUArchState *env, target_ulong addr, uint8_t val,
|
void helper_ret_stb_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr)
|
MemOpIdx oi, uintptr_t retaddr)
|
||||||
{
|
{
|
||||||
full_stb_mmu(env, addr, val, oi, retaddr);
|
full_stb_mmu(env, addr, val, oi, retaddr);
|
||||||
|
@ -2521,7 +2521,7 @@ static void full_le_stw_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||||
store_helper(env, addr, val, oi, retaddr, MO_LEUW);
|
store_helper(env, addr, val, oi, retaddr, MO_LEUW);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_le_stw_mmu(CPUArchState *env, target_ulong addr, uint16_t val,
|
void helper_le_stw_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr)
|
MemOpIdx oi, uintptr_t retaddr)
|
||||||
{
|
{
|
||||||
full_le_stw_mmu(env, addr, val, oi, retaddr);
|
full_le_stw_mmu(env, addr, val, oi, retaddr);
|
||||||
|
@ -2534,7 +2534,7 @@ static void full_be_stw_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||||
store_helper(env, addr, val, oi, retaddr, MO_BEUW);
|
store_helper(env, addr, val, oi, retaddr, MO_BEUW);
|
||||||
}
|
}
|
||||||
|
|
||||||
void helper_be_stw_mmu(CPUArchState *env, target_ulong addr, uint16_t val,
|
void helper_be_stw_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr)
|
MemOpIdx oi, uintptr_t retaddr)
|
||||||
{
|
{
|
||||||
full_be_stw_mmu(env, addr, val, oi, retaddr);
|
full_be_stw_mmu(env, addr, val, oi, retaddr);
|
||||||
|
|
|
@ -55,15 +55,19 @@ tcg_target_ulong helper_be_ldsw_mmu(CPUArchState *env, target_ulong addr,
|
||||||
tcg_target_ulong helper_be_ldsl_mmu(CPUArchState *env, target_ulong addr,
|
tcg_target_ulong helper_be_ldsl_mmu(CPUArchState *env, target_ulong addr,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
|
|
||||||
void helper_ret_stb_mmu(CPUArchState *env, target_ulong addr, uint8_t val,
|
/*
|
||||||
|
* Value extended to at least uint32_t, so that some ABIs do not require
|
||||||
|
* zero-extension from uint8_t or uint16_t.
|
||||||
|
*/
|
||||||
|
void helper_ret_stb_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
void helper_le_stw_mmu(CPUArchState *env, target_ulong addr, uint16_t val,
|
void helper_le_stw_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
void helper_le_stl_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
void helper_le_stl_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
void helper_le_stq_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
|
void helper_le_stq_mmu(CPUArchState *env, target_ulong addr, uint64_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
void helper_be_stw_mmu(CPUArchState *env, target_ulong addr, uint16_t val,
|
void helper_be_stw_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
void helper_be_stl_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
void helper_be_stl_mmu(CPUArchState *env, target_ulong addr, uint32_t val,
|
||||||
MemOpIdx oi, uintptr_t retaddr);
|
MemOpIdx oi, uintptr_t retaddr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue