]> Git Repo - qemu.git/commitdiff
Merge tag 'pull-rx-20220421' of https://gitlab.com/rth7680/qemu into staging
authorRichard Henderson <[email protected]>
Thu, 21 Apr 2022 23:45:41 +0000 (16:45 -0700)
committerRichard Henderson <[email protected]>
Thu, 21 Apr 2022 23:45:41 +0000 (16:45 -0700)
Fix usp/isp swapping upon clrpsw/setpsw.
Fix psw.i/pc upon wait.
Align dtb in ram.

# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmJhlJYdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/ipQf+JLeXW1HaD5iNnyUl
# Uh0CLvwwkXvuiDAlaoGCKl2mcVJR/2d/ScTPTGx44VEwmLpV2mgF8/VUWoRtao/C
# Kal5DsaOAC2pUKkYbnorsCpq4ty2QMPYXZXOKULPcfLa3tbsr9bE6JkCQ6gZeAAk
# ITuB+dfdBTpW2lc0eoQ7cDMcQkD1cxyfNVwZ7rP2i9N6tjTW1488kxsBthhQIr0t
# sNrrBIiK7nhdgXNfhWDPP/6f8osZwhLGO8G9tyOTtkPOF6o6Dy27B0Bmlf5T6OY+
# SeTwC2O197gd0YkPWvZgMQbJWnX0kHgHwlFEBaMSxMXAcrlccNZQMyBN4cYoC+ie
# e3vyWA==
# =lj1s
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 21 Apr 2022 10:29:58 AM PDT
# gpg:                using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Richard Henderson <[email protected]>" [ultimate]

* tag 'pull-rx-20220421' of https://gitlab.com/rth7680/qemu:
  target/rx: update PC correctly in wait instruction
  target/rx: set PSW.I when executing wait instruction
  hw/rx: rx-gdbsim DTB load address aligned of 16byte.
  target/rx: Swap stack pointers on clrpsw/setpsw instruction
  target/rx: Move DISAS_UPDATE check for write to PSW
  target/rx: Store PSW.U in tb->flags
  target/rx: Put tb_flags into DisasContext

Signed-off-by: Richard Henderson <[email protected]>
1  2 
target/rx/op_helper.c

diff --combined target/rx/op_helper.c
index 76a746300e46fd4017e48f3570025ea28b301b8e,81645adde3185727f92126293f27e36084eafc00..9ca32dcc820a5bc9a314ae2f5d45f57536bb93f8
@@@ -24,9 -24,8 +24,9 @@@
  #include "exec/cpu_ldst.h"
  #include "fpu/softfloat.h"
  
 -static inline void QEMU_NORETURN raise_exception(CPURXState *env, int index,
 -                                                 uintptr_t retaddr);
 +static inline G_NORETURN
 +void raise_exception(CPURXState *env, int index,
 +                     uintptr_t retaddr);
  
  static void _set_psw(CPURXState *env, uint32_t psw, uint32_t rte)
  {
@@@ -419,9 -418,8 +419,9 @@@ uint32_t helper_divu(CPURXState *env, u
  }
  
  /* exception */
 -static inline void QEMU_NORETURN raise_exception(CPURXState *env, int index,
 -                                                 uintptr_t retaddr)
 +static inline G_NORETURN
 +void raise_exception(CPURXState *env, int index,
 +                     uintptr_t retaddr)
  {
      CPUState *cs = env_cpu(env);
  
      cpu_loop_exit_restore(cs, retaddr);
  }
  
 -void QEMU_NORETURN helper_raise_privilege_violation(CPURXState *env)
 +G_NORETURN void helper_raise_privilege_violation(CPURXState *env)
  {
      raise_exception(env, 20, GETPC());
  }
  
 -void QEMU_NORETURN helper_raise_access_fault(CPURXState *env)
 +G_NORETURN void helper_raise_access_fault(CPURXState *env)
  {
      raise_exception(env, 21, GETPC());
  }
  
 -void QEMU_NORETURN helper_raise_illegal_instruction(CPURXState *env)
 +G_NORETURN void helper_raise_illegal_instruction(CPURXState *env)
  {
      raise_exception(env, 23, GETPC());
  }
  
 -void QEMU_NORETURN helper_wait(CPURXState *env)
 +G_NORETURN void helper_wait(CPURXState *env)
  {
      CPUState *cs = env_cpu(env);
  
      cs->halted = 1;
      env->in_sleep = 1;
+     env->psw_i = 1;
      raise_exception(env, EXCP_HLT, 0);
  }
  
 -void QEMU_NORETURN helper_rxint(CPURXState *env, uint32_t vec)
 +G_NORETURN void helper_rxint(CPURXState *env, uint32_t vec)
  {
      raise_exception(env, 0x100 + vec, 0);
  }
  
 -void QEMU_NORETURN helper_rxbrk(CPURXState *env)
 +G_NORETURN void helper_rxbrk(CPURXState *env)
  {
      raise_exception(env, 0x100, 0);
  }
This page took 0.050178 seconds and 4 git commands to generate.