On 2/15/21 5:19 PM, Richard Henderson wrote:
On 2/15/21 1:58 PM, Rebecca Cran wrote:
@@ -960,6 +960,12 @@ static void cpsr_write_from_spsr_elx(CPUARMState *env,
          val |= CPSR_DIT;
      }
+ /* Move SSBS to the correct location for CPSR */
+    if (val & PSTATE_SSBS) {
+        val &= ~PSTATE_SSBS;
+        val |= CPSR_SSBS;
+    }

Incorrect.  SPSR_ELx leaves this at the same position as CPSR: bit 23.

Okay, I see where I'm going wrong now - SPSR_ELx has different formats for exceptions taken from aarch32 and aarch64 states, which I hadn't fully understood. I'll fix it.

--
Rebecca Cran



Reply via email to