diff options
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp | 5 | ||||
-rw-r--r-- | test/MC/MachO/ARM/nop-armv4-padding.s | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp b/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp index 27c1bc76fd..b99dd7a850 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp @@ -221,7 +221,10 @@ void ARMAsmBackend::relaxInstruction(const MCInst &Inst, MCInst &Res) const { bool ARMAsmBackend::writeNopData(uint64_t Count, MCObjectWriter *OW) const { const uint16_t Thumb1_16bitNopEncoding = 0x46c0; // using MOV r8,r8 const uint16_t Thumb2_16bitNopEncoding = 0xbf00; // NOP - const uint32_t ARMv4_NopEncoding = 0xe1a0000; // using MOV r0,r0 + // @LOCALMOD-BEGIN + // The upstream operation for this encoding is not what it says it is. + const uint32_t ARMv4_NopEncoding = 0xe1a00000; // using MOV r0,r0 + // @LOCALMOD-END const uint32_t ARMv6T2_NopEncoding = 0xe320f000; // NOP if (isThumb()) { const uint16_t nopEncoding = hasNOP() ? Thumb2_16bitNopEncoding diff --git a/test/MC/MachO/ARM/nop-armv4-padding.s b/test/MC/MachO/ARM/nop-armv4-padding.s index 8f646dbb39..f704d801a6 100644 --- a/test/MC/MachO/ARM/nop-armv4-padding.s +++ b/test/MC/MachO/ARM/nop-armv4-padding.s @@ -7,4 +7,5 @@ x: .align 4 add r0, r1, r2 -@ CHECK: ('_section_data', '020081e0 00001a0e 00001a0e 00001a0e 020081e0') +; @LOCALMOD - Changed the NOP encoding +@ CHECK: ('_section_data', '020081e0 0000a0e1 0000a0e1 0000a0e1 020081e0') |