diff options
| author | Simon Atanasyan <simon@atanasyan.com> | 2019-07-12 04:58:45 +0000 |
|---|---|---|
| committer | Simon Atanasyan <simon@atanasyan.com> | 2019-07-12 04:58:45 +0000 |
| commit | ee5af50eb0c3b40bed784ba3f8bde1b06c0f6804 (patch) | |
| tree | 6f707085bd0b8dd64effb0e83a6155fe06774886 /llvm/test/CodeGen/Mips/tailcall/tailcall.ll | |
| parent | 27ed1c5bb80c8da317cd80bdd50cb22189d1c6fb (diff) | |
| download | bcm5719-llvm-ee5af50eb0c3b40bed784ba3f8bde1b06c0f6804.tar.gz bcm5719-llvm-ee5af50eb0c3b40bed784ba3f8bde1b06c0f6804.zip | |
[mips] Fix JmpLink to texternalsym and tglobaladdr on mcroMIPS R6
There is not match for the `MipsJmpLink texternalsym` and `MipsJmpLink
tglobaladdr` patterns for microMIPS R6. As a result LLVM incorrectly
selects the `JALRC16` compact 2-byte instruction which takes a target
instruction address from a register only and assign `R_MIPS_32` relocation
for this instruction. This relocation completely overwrites `JALRC16`
and nearby instructions.
This patch adds missed matching patterns, selects `BALC` instruction and
assign a correct `R_MICROMIPS_PC26_S1` relocation.
Differential Revision: https://reviews.llvm.org/D64552
llvm-svn: 365870
Diffstat (limited to 'llvm/test/CodeGen/Mips/tailcall/tailcall.ll')
| -rw-r--r-- | llvm/test/CodeGen/Mips/tailcall/tailcall.ll | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/test/CodeGen/Mips/tailcall/tailcall.ll b/llvm/test/CodeGen/Mips/tailcall/tailcall.ll index 8822323c521..50759b2104e 100644 --- a/llvm/test/CodeGen/Mips/tailcall/tailcall.ll +++ b/llvm/test/CodeGen/Mips/tailcall/tailcall.ll @@ -47,7 +47,7 @@ entry: ; PIC32MM: jalr $25 ; PIC32R6: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; N64: jalr $25 ; N64R6: jalr $25 ; PIC16: jalrc @@ -65,7 +65,7 @@ entry: ; PIC32MM: jalr $25 ; PIC32R6: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; N64: jalr $25 ; N64R6: jalr $25 ; PIC16: jalrc @@ -83,7 +83,7 @@ entry: ; PIC32R6: jalr $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; N64: jalr $25 ; N64R6: jalr $25 ; PIC16: jalrc @@ -179,7 +179,7 @@ entry: ; PIC32R6: jalr $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; PIC64: jalr $25 ; STATIC64: jal ; PIC16: jalrc @@ -217,7 +217,7 @@ entry: ; PIC32R6: jalrc $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; STATIC64: jal ; PIC64: jalr $25 ; PIC64R6: jalrc $25 @@ -236,7 +236,7 @@ entry: ; PIC32R6: jalr $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; STATIC64: jal ; PIC64: jalr $25 ; PIC64R6: jalr $25 @@ -255,7 +255,7 @@ entry: ; PIC32R6: jalrc $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; STATIC64: jal ; PIC64: jalr $25 ; PIC64R6: jalrc $25 @@ -276,7 +276,7 @@ entry: ; PIC32R6: jalrc $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; STATIC64: jal ; PIC64: jalr $25 ; PIC64R6: jalrc $25 @@ -297,7 +297,7 @@ entry: ; PIC32R6: jalr $25 ; PIC32MM: jalr $25 ; STATIC32: jal -; STATIC32MMR6: jal +; STATIC32MMR6: balc ; STATIC64: jal ; PIC64R6: jalr $25 ; PIC64: jalr $25 |

