Skip to content

Commit 9dfdc66

Browse files
committed
Add the eor instruction to any code model
1 parent 6469adc commit 9dfdc66

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2275,14 +2275,15 @@ bool AArch64InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
22752275
.addGlobalAddress(GV, 0, LoFlags)
22762276
.addMemOperand(*MI.memoperands_begin());
22772277
}
2278-
if (Subtarget.getTargetTriple().isOSMSVCRT() &&
2279-
!Subtarget.getTargetLowering()
2280-
->getTargetMachine()
2281-
.Options.EnableGlobalISel) {
2282-
BuildMI(MBB, MI, DL, get(AArch64::EORWrr), Reg)
2283-
.addReg(Reg, RegState::Kill)
2284-
.addReg(AArch64::SP);
2285-
}
2278+
}
2279+
// To match MSVC
2280+
if (Subtarget.getTargetTriple().isOSMSVCRT() &&
2281+
!Subtarget.getTargetLowering()
2282+
->getTargetMachine()
2283+
.Options.EnableGlobalISel) {
2284+
BuildMI(MBB, MI, DL, get(AArch64::EORWrr), Reg)
2285+
.addReg(Reg, RegState::Kill)
2286+
.addReg(AArch64::SP);
22862287
}
22872288

22882289
MBB.erase(MI);

llvm/test/CodeGen/AArch64/mingw-refptr.ll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
22
; RUN: llc < %s -mtriple=aarch64-w64-mingw32 | FileCheck %s --check-prefixes=CHECK,CHECK-SD
3-
; RUN: llc < %s -mtriple=aarch64-w64-mingw32 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI
3+
; RUN: llc < %s -mtriple=aarch64-w64-mingw32 -global-isel | FileCheck %s --check-prefixes=CHECK-GI
44

55
@var = external local_unnamed_addr global i32, align 4
66
@dsolocalvar = external dso_local local_unnamed_addr global i32, align 4
@@ -89,12 +89,14 @@ define dso_local void @sspFunc() #0 {
8989
; CHECK-NEXT: add x0, sp, #7
9090
; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard]
9191
; CHECK-NEXT: ldr x8, [x8]
92+
; CHECK-NEXT: eor x8, x8, sp
9293
; CHECK-NEXT: str x8, [sp, #8]
9394
; CHECK-NEXT: bl ptrUser
9495
; CHECK-NEXT: adrp x8, .refptr.__stack_chk_guard
9596
; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard]
9697
; CHECK-NEXT: ldr x9, [sp, #8]
9798
; CHECK-NEXT: ldr x8, [x8]
99+
; CHECK-NEXT: eor x8, x8, sp
98100
; CHECK-NEXT: cmp x8, x9
99101
; CHECK-NEXT: b.ne .LBB6_2
100102
; CHECK-NEXT: // %bb.1: // %entry

0 commit comments

Comments
 (0)