150
|
1 # REQUIRES: ppc
|
|
2
|
|
3 # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %t1.o
|
|
4 # RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %p/Inputs/ppc64-no-split-stack.s -o %t2.o
|
|
5
|
173
|
6 # RUN: not ld.lld --defsym __morestack=0x10010000 %t1.o %t2.o -o /dev/null 2>&1 | FileCheck %s
|
150
|
7
|
|
8 # RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %t1.o
|
|
9 # RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %p/Inputs/ppc64-no-split-stack.s -o %t2.o
|
|
10
|
173
|
11 # RUN: not ld.lld --defsym __morestack=0x10010000 %t1.o %t2.o -o /dev/null 2>&1 | FileCheck %s
|
150
|
12
|
|
13 # CHECK: error: {{.*}}.o:(.text): wrong_regs (with -fsplit-stack) calls nss_callee (without -fsplit-stack), but couldn't adjust its prologue
|
|
14
|
|
15 .abiversion 2
|
|
16 .section ".text"
|
|
17
|
|
18 .p2align 2
|
|
19 .global wrong_regs
|
|
20 .type wrong_regs, @function
|
|
21
|
|
22 wrong_regs:
|
|
23 .Lwr_gep:
|
|
24 addis 2, 12, .TOC.-.Lwr_gep@ha
|
|
25 addi 2, 2, .TOC.-.Lwr_gep@l
|
|
26 .localentry wrong_regs, .-wrong_regs
|
|
27 ld 0, -0x7040(13)
|
|
28 addis 5, 2, -1
|
|
29 addi 5, 5, -32
|
|
30 addi 12, 1, -32
|
|
31 nop
|
|
32 cmpld 7, 12, 0
|
|
33 blt- 7, .Lwr_alloc_more
|
|
34 .Lwr_body:
|
|
35 mflr 0
|
|
36 std 0, 16(1)
|
|
37 stdu 1, -32(1)
|
|
38 bl nss_callee
|
|
39 addi 1, 1, 32
|
|
40 ld 0, 16(1)
|
|
41 mtlr 0
|
|
42 blr
|
|
43 .Lwr_alloc_more:
|
|
44 mflr 0
|
|
45 std 0, 16(1)
|
|
46 bl __morestack
|
|
47 ld 0, 16(1)
|
|
48 mtlr 0
|
|
49 blr
|
|
50 b .Lwr_body
|
|
51 .size wrong_regs, .-wrong_regs
|
|
52
|
|
53 .section .note.GNU-split-stack,"",@progbits
|