}
else
{
- unsigned int insn
- = read_memory_unsigned_integer (pc, 4, byte_order_for_code);
-
- if ((insn & 0x0e5f0000) == 0x041f0000) /* ldr Rd, #immed */
- {
- address = bits (insn, 0, 11);
- *destreg = bits (insn, 12, 15);
- *offset = 4;
- }
- else if ((insn & 0x0ff00000) == 0x03000000) /* movw Rd, #const */
- {
- low = EXTRACT_MOVW_MOVT_IMM_A (insn);
+ unsigned int insn
+ = read_memory_unsigned_integer (pc, 4, byte_order_for_code);
- insn
- = read_memory_unsigned_integer (pc + 4, 4, byte_order_for_code);
+ if ((insn & 0x0e5f0000) == 0x041f0000) /* ldr Rd, #immed */
+ {
+ address = bits (insn, 0, 11);
+ *destreg = bits (insn, 12, 15);
+ *offset = 4;
+ }
+ else if ((insn & 0x0ff00000) == 0x03000000) /* movw Rd, #const */
+ {
+ low = EXTRACT_MOVW_MOVT_IMM_A (insn);
- if ((insn & 0x0ff00000) == 0x03400000) /* movt Rd, #const */
- high = EXTRACT_MOVW_MOVT_IMM_A (insn);
+ insn
+ = read_memory_unsigned_integer (pc + 4, 4, byte_order_for_code);
- address = (high << 16 | low);
- *destreg = bits (insn, 12, 15);
- *offset = 8;
- }
+ if ((insn & 0x0ff00000) == 0x03400000) /* movt Rd, #const */
+ {
+ high = EXTRACT_MOVW_MOVT_IMM_A (insn);
+ *destreg = bits (insn, 12, 15);
+ *offset = 8;
+ address = (high << 16 | low);
+ }
+ }
}
return address;