We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I was wondering about LDRT when the operand is rrx'd. Which where does the carry-bit come from?
LDRT{<c>}{<q>} <Rt>, [<Rn>], +/-<Rm> {, <shift>}
RRX Rotate right one bit, with extend. Bit[0] is written to shifter_carry_out, bits[31:1] are shifted right
one bit, and the Carry flag is shifted into bit[31].
That's user mode access, and user mode doesn't have SPSR, so where does the carry shifted into the
bit[31] come from? User mode is not necessarily the previous mode.
Yes, you use the current mode's register values, but the permission checking in the MMU/MPU is equivalent to a User mode access.
Note, in Hyp mode (EL2) this instruction is UNPREDICTABLE.
Thanks.