[llvm] 1379b15 - [AArch64] Fix the generation of BE Nops
David Green via llvm-commits
llvm-commits at lists.llvm.org
Fri May 20 01:31:04 PDT 2022
Author: David Green
Date: 2022-05-20T09:31:00+01:00
New Revision: 1379b150991f70a5782e9a143c2ba5308da1161c
URL: https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
DIFF: https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c.diff
LOG: [AArch64] Fix the generation of BE Nops
Big endian Nops were being generated as d5 03 20 1f fnmadd s21, s30,
s0, s0, getting the bytes of the NOP in the wrong order. This switches
the bytes to not be dependant on the endianness.
Differential Revision: https://reviews.llvm.org/D125980
Added:
llvm/test/MC/AArch64/align.s
Modified:
llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
index c1188d1c139e5..a57656ffb38bb 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
@@ -471,7 +471,7 @@ bool AArch64AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count,
// We are properly aligned, so write NOPs as requested.
Count /= 4;
for (uint64_t i = 0; i != Count; ++i)
- support::endian::write<uint32_t>(OS, 0xd503201f, Endian);
+ OS.write("\x1f\x20\x03\xd5", 4);
return true;
}
diff --git a/llvm/test/MC/AArch64/align.s b/llvm/test/MC/AArch64/align.s
new file mode 100644
index 0000000000000..fa9950f987754
--- /dev/null
+++ b/llvm/test/MC/AArch64/align.s
@@ -0,0 +1,14 @@
+// RUN: llvm-mc -filetype=obj -triple aarch64-none-eabi %s | llvm-objdump -d - | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple aarch64_be-none-eabi %s | llvm-objdump -d - | FileCheck %s
+
+// CHECK: 0: 00 00 80 d2 mov x0, #0
+// CHECK: 4: 00 00 80 d2 mov x0, #0
+// CHECK: 8: 1f 20 03 d5 nop
+// CHECK: c: 1f 20 03 d5 nop
+// CHECK: 10: 00 00 80 d2 mov x0, #0
+
+ .text
+ mov x0, #0
+ mov x0, #0
+ .p2align 4
+ mov x0, #0
More information about the llvm-commits
mailing list