summary refs log tree commit diff stats
path: root/target/xtensa/translate.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/xtensa/translate.c')
-rw-r--r--target/xtensa/translate.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
index c541b59747..c0408a01c7 100644
--- a/target/xtensa/translate.c
+++ b/target/xtensa/translate.c
@@ -1420,11 +1420,19 @@ static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc)
                     break;
 
                 case 6: /*RER*/
-                    TBD();
+                    HAS_OPTION(XTENSA_OPTION_EXTERN_REGS);
+                    if (gen_check_privilege(dc) &&
+                        gen_window_check2(dc, RRR_S, RRR_T)) {
+                        gen_helper_rer(cpu_R[RRR_T], cpu_env, cpu_R[RRR_S]);
+                    }
                     break;
 
                 case 7: /*WER*/
-                    TBD();
+                    HAS_OPTION(XTENSA_OPTION_EXTERN_REGS);
+                    if (gen_check_privilege(dc) &&
+                        gen_window_check2(dc, RRR_S, RRR_T)) {
+                        gen_helper_wer(cpu_env, cpu_R[RRR_T], cpu_R[RRR_S]);
+                    }
                     break;
 
                 case 8: /*ROTWw*/