|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
One decoded immediate-or-register Armv8.1-M long shift. More...
Data Fields | |
| uint32_t | rdalo |
| Low destination register index (even). | |
| uint32_t | rdahi |
| High destination register index. | |
| uint32_t | op |
| k_lsh_op_lsll / _lsrl / _asrl. | |
| bool | by_reg |
true when the amount comes from rm. | |
| uint32_t | rm |
| Register holding the amount (register form only). | |
| uint32_t | imm |
| Shift amount 1..32 (immediate form only). | |
One decoded immediate-or-register Armv8.1-M long shift.
Produced by internal_long_shift_decode and consumed by internal_long_shift_begin. The register form carries the shift amount in a register that can only be read once the core is at the instruction, so the amount is resolved separately by internal_long_shift_amount rather than being decoded here.
rdalo is even; rdahi is never 0b1111. by_reg / immediate use is meaningful: when by_reg is false imm holds the amount, otherwise rm names the register that does. Definition at line 133 of file emu_seam_longshift.c.
| bool long_shift_insn_t::by_reg |
true when the amount comes from rm.
Definition at line 137 of file emu_seam_longshift.c.
Referenced by emulate_long_shift_reg(), internal_install_seg_hooks(), internal_long_shift_amount(), and internal_long_shift_decode().
| uint32_t long_shift_insn_t::imm |
Shift amount 1..32 (immediate form only).
Definition at line 139 of file emu_seam_longshift.c.
Referenced by internal_long_shift_amount(), and internal_long_shift_decode().
| uint32_t long_shift_insn_t::op |
k_lsh_op_lsll / _lsrl / _asrl.
Definition at line 136 of file emu_seam_longshift.c.
Referenced by emulate_long_shift_reg(), internal_long_shift_begin(), and internal_long_shift_decode().
| uint32_t long_shift_insn_t::rdahi |
High destination register index.
Definition at line 135 of file emu_seam_longshift.c.
Referenced by emulate_long_shift_reg(), and internal_long_shift_begin().
| uint32_t long_shift_insn_t::rdalo |
Low destination register index (even).
Definition at line 134 of file emu_seam_longshift.c.
Referenced by emulate_long_shift_reg(), and internal_long_shift_begin().
| uint32_t long_shift_insn_t::rm |
Register holding the amount (register form only).
Definition at line 138 of file emu_seam_longshift.c.
Referenced by internal_long_shift_amount(), and internal_long_shift_decode().