[PATCH] D88085: AArch64: avoid error when truncating MCExprs
Tim Northover via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 22 05:50:36 PDT 2020
t.p.northover updated this revision to Diff 293428.
t.p.northover added a comment.
Bother, forgot to add the test.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D88085/new/
https://reviews.llvm.org/D88085
Files:
llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
llvm/test/CodeGen/AArch64/2s-complement-asm.ll
Index: llvm/test/CodeGen/AArch64/2s-complement-asm.ll
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/AArch64/2s-complement-asm.ll
@@ -0,0 +1,9 @@
+; RUN: llc -mtriple=arm64-apple-ios %s -filetype=obj -o - | llvm-objdump --macho --section __DATA,__data - | FileCheck %s
+
+; CHECK: Contents of (__DATA,__data) section
+; CHECK: 0000002a 59ed145d
+ at other = global i32 42
+ at var = global i32 sub(i32 646102975,
+ i32 add (i32 trunc(i64 sub(i64 ptrtoint(i32* @var to i64),
+ i64 ptrtoint(i32* @other to i64)) to i32),
+ i32 3432360802))
Index: llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
===================================================================
--- llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+++ llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
@@ -154,19 +154,6 @@
return (hi19 << 5) | (lo2 << 29);
}
-static bool valueFitsIntoFixupKind(unsigned Kind, uint64_t Value) {
- unsigned NumBits;
- switch(Kind) {
- case FK_Data_1: NumBits = 8; break;
- case FK_Data_2: NumBits = 16; break;
- case FK_Data_4: NumBits = 32; break;
- case FK_Data_8: NumBits = 64; break;
- default: return true;
- }
- return isUIntN(NumBits, Value) ||
- isIntN(NumBits, static_cast<int64_t>(Value));
-}
-
static uint64_t adjustFixupValue(const MCFixup &Fixup, const MCValue &Target,
uint64_t Value, MCContext &Ctx,
const Triple &TheTriple, bool IsResolved) {
@@ -341,9 +328,6 @@
case FK_Data_2:
case FK_Data_4:
case FK_Data_8:
- if (!valueFitsIntoFixupKind(Fixup.getTargetKind(), Value))
- Ctx.reportError(Fixup.getLoc(), "fixup value too large for data type!");
- LLVM_FALLTHROUGH;
case FK_SecRel_2:
case FK_SecRel_4:
return Value;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88085.293428.patch
Type: text/x-patch
Size: 1937 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200922/be144f42/attachment.bin>
More information about the llvm-commits
mailing list