Skip to content

Commit 2d12649

Browse files
committed
Fix stack probe calculation
1 parent 4ea4868 commit 2d12649

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

llvm/test/CodeGen/X86/huge-stack.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ define void @foo_with_probe_stack() unnamed_addr #0 {
7777
; CHECK-LABEL: foo_with_probe_stack:
7878
; CHECK: # %bb.0:
7979
; CHECK-NEXT: movabsq $-8589930496, %r11 # imm = 0xFFFFFFFE00001000
80-
; CHECK-NEXT: addq %rsp, %r11
80+
; CHECK-NEXT: leaq (%rsp,%r11), %r11
8181
; CHECK-NEXT: .cfi_def_cfa_register %r11
8282
; CHECK-NEXT: .cfi_adjust_cfa_offset 8589930496
8383
; CHECK-NEXT: .LBB2_1: # =>This Inner Loop Header: Depth=1

llvm/test/CodeGen/X86/stack-clash-large-large-align.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ define i32 @foo_protect() local_unnamed_addr #0 {
5555
; CHECK-NEXT: movq %r11, %rsp
5656
; CHECK-NEXT: movq $0, (%rsp)
5757
; CHECK-NEXT: .LBB1_4:
58-
; CHECK-NEXT: movq %rsp, %r11
59-
; CHECK-NEXT: subq $73728, %r11 # imm = 0x12000
58+
; CHECK-NEXT: movq $-73728, %r11 # imm = 0xFFFEE000
59+
; CHECK-NEXT: addq %rsp, %r11
6060
; CHECK-NEXT: .LBB1_5: # =>This Inner Loop Header: Depth=1
6161
; CHECK-NEXT: subq $4096, %rsp # imm = 0x1000
6262
; CHECK-NEXT: movq $0, (%rsp)

llvm/test/CodeGen/X86/stack-clash-large.ll

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
define i32 @foo() local_unnamed_addr #0 {
77
; CHECK-X64-LABEL: foo:
88
; CHECK-X64: # %bb.0:
9-
; CHECK-X64-NEXT: movq %rsp, %r11
10-
; CHECK-X64-NEXT: subq $69632, %r11 # imm = 0x11000
9+
; CHECK-X64-NEXT: movq $-69632, %r11 # imm = 0xFFFEF000
10+
; CHECK-X64-NEXT: addq %rsp, %r11
1111
; CHECK-X64-NEXT: .cfi_def_cfa_register %r11
1212
; CHECK-X64-NEXT: .cfi_adjust_cfa_offset 69632
1313
; CHECK-X64-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1
@@ -28,8 +28,8 @@ define i32 @foo() local_unnamed_addr #0 {
2828
;
2929
; CHECK-X86-LABEL: foo:
3030
; CHECK-X86: # %bb.0:
31-
; CHECK-X86-NEXT: movl %esp, %eax
32-
; CHECK-X86-NEXT: subl $69632, %eax # imm = 0x11000
31+
; CHECK-X86-NEXT: movl $-69632, %eax # imm = 0xFFFEF000
32+
; CHECK-X86-NEXT: addl %esp, %eax
3333
; CHECK-X86-NEXT: .cfi_def_cfa_register %eax
3434
; CHECK-X86-NEXT: .cfi_adjust_cfa_offset 69632
3535
; CHECK-X86-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1
@@ -50,8 +50,8 @@ define i32 @foo() local_unnamed_addr #0 {
5050
;
5151
; CHECK-X32-LABEL: foo:
5252
; CHECK-X32: # %bb.0:
53-
; CHECK-X32-NEXT: movl %esp, %r11d
54-
; CHECK-X32-NEXT: subl $69632, %r11d # imm = 0x11000
53+
; CHECK-X32-NEXT: movl $-69632, %r11d # imm = 0xFFFEF000
54+
; CHECK-X32-NEXT: addl %esp, %r11d
5555
; CHECK-X32-NEXT: .cfi_def_cfa_register %r11
5656
; CHECK-X32-NEXT: .cfi_adjust_cfa_offset 69632
5757
; CHECK-X32-NEXT: .LBB0_1: # =>This Inner Loop Header: Depth=1
@@ -83,8 +83,8 @@ define void @push_before_probe(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i
8383
; CHECK-X64: # %bb.0:
8484
; CHECK-X64-NEXT: pushq %rax
8585
; CHECK-X64-NEXT: .cfi_def_cfa_offset 16
86-
; CHECK-X64-NEXT: movq %rsp, %r11
87-
; CHECK-X64-NEXT: subq $69632, %r11 # imm = 0x11000
86+
; CHECK-X64-NEXT: movq $-69632, %r11 # imm = 0xFFFEF000
87+
; CHECK-X64-NEXT: addq %rsp, %r11
8888
; CHECK-X64-NEXT: .cfi_def_cfa_register %r11
8989
; CHECK-X64-NEXT: .cfi_adjust_cfa_offset 69632
9090
; CHECK-X64-NEXT: .LBB1_1: # =>This Inner Loop Header: Depth=1
@@ -123,8 +123,8 @@ define void @push_before_probe(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i
123123
; CHECK-X86-NEXT: .cfi_def_cfa_offset 16
124124
; CHECK-X86-NEXT: pushl %eax
125125
; CHECK-X86-NEXT: .cfi_def_cfa_offset 20
126-
; CHECK-X86-NEXT: movl %esp, %eax
127-
; CHECK-X86-NEXT: subl $69632, %eax # imm = 0x11000
126+
; CHECK-X86-NEXT: movl $-69632, %eax # imm = 0xFFFEF000
127+
; CHECK-X86-NEXT: addl %esp, %eax
128128
; CHECK-X86-NEXT: .cfi_def_cfa_register %eax
129129
; CHECK-X86-NEXT: .cfi_adjust_cfa_offset 69632
130130
; CHECK-X86-NEXT: .LBB1_1: # =>This Inner Loop Header: Depth=1
@@ -169,8 +169,8 @@ define void @push_before_probe(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i
169169
; CHECK-X32: # %bb.0:
170170
; CHECK-X32-NEXT: pushq %rax
171171
; CHECK-X32-NEXT: .cfi_def_cfa_offset 16
172-
; CHECK-X32-NEXT: movl %esp, %r11d
173-
; CHECK-X32-NEXT: subl $69632, %r11d # imm = 0x11000
172+
; CHECK-X32-NEXT: movl $-69632, %r11d # imm = 0xFFFEF000
173+
; CHECK-X32-NEXT: addl %esp, %r11d
174174
; CHECK-X32-NEXT: .cfi_def_cfa_register %r11
175175
; CHECK-X32-NEXT: .cfi_adjust_cfa_offset 69632
176176
; CHECK-X32-NEXT: .LBB1_1: # =>This Inner Loop Header: Depth=1

llvm/test/CodeGen/X86/stack-clash-small-large-align.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ define i32 @foo_protect() local_unnamed_addr #0 {
5151
; CHECK-NEXT: movq %r11, %rsp
5252
; CHECK-NEXT: movq $0, (%rsp)
5353
; CHECK-NEXT: .LBB1_4:
54-
; CHECK-NEXT: movq %rsp, %r11
55-
; CHECK-NEXT: subq $65536, %r11 # imm = 0x10000
54+
; CHECK-NEXT: movq $-65536, %r11 # imm = 0xFFFF0000
55+
; CHECK-NEXT: addq %rsp, %r11
5656
; CHECK-NEXT: .LBB1_5: # =>This Inner Loop Header: Depth=1
5757
; CHECK-NEXT: subq $4096, %rsp # imm = 0x1000
5858
; CHECK-NEXT: movq $0, (%rsp)

0 commit comments

Comments
 (0)