diff options
author | Luís Marques <luismarques@lowrisc.org> | 2019-11-10 16:04:43 +0000 |
---|---|---|
committer | Luís Marques <luismarques@lowrisc.org> | 2019-11-10 16:09:14 +0000 |
commit | 1c737f54bee9df81c63ddf6ee2ad1d23a93c0ba0 (patch) | |
tree | 308604f3e58ad353833b7aa69754ce83ad7e0cfb /llvm/test/CodeGen/RISCV/vararg.ll | |
parent | be0fead7bffbf65c519ca50c89584e65dcf18793 (diff) | |
download | bcm5719-llvm-1c737f54bee9df81c63ddf6ee2ad1d23a93c0ba0.tar.gz bcm5719-llvm-1c737f54bee9df81c63ddf6ee2ad1d23a93c0ba0.zip |
[RISCV] Fix CFA when doing split sp adjustment with fp
Summary: When using the split sp adjustment and using the frame-pointer
we were still emitting CFI CFA directives based on the sp value. The
final sp-based offset also didn't reflect the two-stage sp adjust. There
remain CFI issues that aren't related to the split sp adjustment, and
thus will be addressed in a separate patch.
Reviewers: asb, lenary, shiva0217
Reviewed By: lenary, shiva0217
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69385
Diffstat (limited to 'llvm/test/CodeGen/RISCV/vararg.ll')
-rw-r--r-- | llvm/test/CodeGen/RISCV/vararg.ll | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/RISCV/vararg.ll b/llvm/test/CodeGen/RISCV/vararg.ll index 82ff64a30bc..0918830c5d3 100644 --- a/llvm/test/CodeGen/RISCV/vararg.ll +++ b/llvm/test/CodeGen/RISCV/vararg.ll @@ -1825,7 +1825,6 @@ define i32 @va_large_stack(i8* %fmt, ...) { ; ILP32-ILP32F-WITHFP-NEXT: lui a0, 24414 ; ILP32-ILP32F-WITHFP-NEXT: addi a0, a0, -1728 ; ILP32-ILP32F-WITHFP-NEXT: sub sp, sp, a0 -; ILP32-ILP32F-WITHFP-NEXT: .cfi_def_cfa_offset 100000048 ; ILP32-ILP32F-WITHFP-NEXT: mv a0, a1 ; ILP32-ILP32F-WITHFP-NEXT: sw a7, 28(s0) ; ILP32-ILP32F-WITHFP-NEXT: sw a6, 24(s0) @@ -1842,9 +1841,8 @@ define i32 @va_large_stack(i8* %fmt, ...) { ; ILP32-ILP32F-WITHFP-NEXT: lui a1, 24414 ; ILP32-ILP32F-WITHFP-NEXT: addi a1, a1, -1728 ; ILP32-ILP32F-WITHFP-NEXT: add sp, sp, a1 -; ILP32-ILP32F-WITHFP-NEXT: .cfi_def_cfa_offset 2032 ; ILP32-ILP32F-WITHFP-NEXT: lw s0, 1992(sp) -; ILP32-ILP32F-WITHFP-NEXT: .cfi_def_cfa sp, 100000016 +; ILP32-ILP32F-WITHFP-NEXT: .cfi_def_cfa sp, 2000 ; ILP32-ILP32F-WITHFP-NEXT: lw ra, 1996(sp) ; ILP32-ILP32F-WITHFP-NEXT: .cfi_restore ra ; ILP32-ILP32F-WITHFP-NEXT: .cfi_restore s0 @@ -1961,7 +1959,6 @@ define i32 @va_large_stack(i8* %fmt, ...) { ; LP64-LP64F-LP64D-WITHFP-NEXT: lui a0, 24414 ; LP64-LP64F-LP64D-WITHFP-NEXT: addiw a0, a0, -1680 ; LP64-LP64F-LP64D-WITHFP-NEXT: sub sp, sp, a0 -; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_def_cfa_offset 100000096 ; LP64-LP64F-LP64D-WITHFP-NEXT: sd a1, 8(s0) ; LP64-LP64F-LP64D-WITHFP-NEXT: sd a7, 56(s0) ; LP64-LP64F-LP64D-WITHFP-NEXT: sd a6, 48(s0) @@ -1979,9 +1976,8 @@ define i32 @va_large_stack(i8* %fmt, ...) { ; LP64-LP64F-LP64D-WITHFP-NEXT: lui a1, 24414 ; LP64-LP64F-LP64D-WITHFP-NEXT: addiw a1, a1, -1680 ; LP64-LP64F-LP64D-WITHFP-NEXT: add sp, sp, a1 -; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_def_cfa_offset 2032 ; LP64-LP64F-LP64D-WITHFP-NEXT: ld s0, 1952(sp) -; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_def_cfa sp, 100000032 +; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_def_cfa sp, 1968 ; LP64-LP64F-LP64D-WITHFP-NEXT: ld ra, 1960(sp) ; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_restore ra ; LP64-LP64F-LP64D-WITHFP-NEXT: .cfi_restore s0 |