mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
target-sparc: Implement cas_asi/casx_asi inline
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
fbb4bbb62e
commit
7268adebfd
3 changed files with 47 additions and 56 deletions
|
@ -2150,37 +2150,8 @@ void helper_ldda_asi(CPUSPARCState *env, target_ulong addr, int asi)
|
|||
QT0.high = h;
|
||||
QT0.low = l;
|
||||
}
|
||||
|
||||
target_ulong helper_casx_asi(CPUSPARCState *env, target_ulong addr,
|
||||
target_ulong val1, target_ulong val2,
|
||||
uint32_t asi)
|
||||
{
|
||||
target_ulong ret;
|
||||
|
||||
ret = helper_ld_asi(env, addr, asi, MO_Q);
|
||||
if (val2 == ret) {
|
||||
helper_st_asi(env, addr, val1, asi, MO_Q);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif /* TARGET_SPARC64 */
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64)
|
||||
target_ulong helper_cas_asi(CPUSPARCState *env, target_ulong addr,
|
||||
target_ulong val1, target_ulong val2, uint32_t asi)
|
||||
{
|
||||
target_ulong ret;
|
||||
|
||||
val2 &= 0xffffffffUL;
|
||||
ret = helper_ld_asi(env, addr, asi, MO_UL);
|
||||
ret &= 0xffffffffUL;
|
||||
if (val2 == ret) {
|
||||
helper_st_asi(env, addr, val1 & 0xffffffffUL, asi, MO_UL);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#endif /* !defined(CONFIG_USER_ONLY) || defined(TARGET_SPARC64) */
|
||||
|
||||
void helper_ldqf(CPUSPARCState *env, target_ulong addr, int mem_idx)
|
||||
{
|
||||
/* XXX add 128 bit load */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue