[llvm] r191400 - Fix a bad typo in the inline assembly code for mips16 pic fp stubs
Reed Kotler
rkotler at mips.com
Wed Sep 25 13:58:50 PDT 2013
Author: rkotler
Date: Wed Sep 25 15:58:50 2013
New Revision: 191400
URL: http://llvm.org/viewvc/llvm-project?rev=191400&view=rev
Log:
Fix a bad typo in the inline assembly code for mips16 pic fp stubs
and make one cosmetic cleanup to make it look the same as gcc
in this area; adjusting test cases.
Added:
llvm/trunk/test/CodeGen/Mips/hf1_body.ll
Modified:
llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp
llvm/trunk/test/CodeGen/Mips/hf16call32_body.ll
Modified: llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp?rev=191400&r1=191399&r2=191400&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp (original)
+++ llvm/trunk/lib/Target/Mips/Mips16HardFloat.cpp Wed Sep 25 15:58:50 2013
@@ -421,7 +421,7 @@ static void createFPFnStub(Function *F,
std::string Name = F->getName();
std::string SectionName = ".mips16.fn." + Name;
std::string StubName = "__fn_stub_" + Name;
- std::string LocalName = "__fn_local_" + Name;
+ std::string LocalName = "$$__fn_local_" + Name;
Function *FStub = Function::Create
(F->getFunctionType(),
Function::InternalLinkage, StubName, M);
@@ -436,14 +436,14 @@ static void createFPFnStub(Function *F,
IAH.Out(" .set macro");
if (PicMode) {
IAH.Out(".set noreorder");
- IAH.Out(".cpload $$2");
+ IAH.Out(".cpload $$25");
IAH.Out(".set reorder");
IAH.Out(".reloc 0,R_MIPS_NONE," + Name);
IAH.Out("la $$25," + LocalName);
}
else {
IAH.Out(".set reorder");
- IAH.Out("la $$25, " + Name);
+ IAH.Out("la $$25," + Name);
}
swapFPIntParams(PV, M, IAH, LE, false);
IAH.Out("jr $$25");
Modified: llvm/trunk/test/CodeGen/Mips/hf16call32_body.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/hf16call32_body.ll?rev=191400&r1=191399&r2=191400&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/hf16call32_body.ll (original)
+++ llvm/trunk/test/CodeGen/Mips/hf16call32_body.ll Wed Sep 25 15:58:50 2013
@@ -20,7 +20,7 @@ entry:
}
; stel: .section .mips16.fn.v_sf,"ax", at progbits
; stel: .ent __fn_stub_v_sf
-; stel: la $25, v_sf
+; stel: la $25,v_sf
; stel: mfc1 $4,$f12
; stel: jr $25
; stel: __fn_local_v_sf = v_sf
@@ -40,7 +40,7 @@ entry:
; stel: .section .mips16.fn.v_df,"ax", at progbits
; stel: .ent __fn_stub_v_df
-; stel: la $25, v_df
+; stel: la $25,v_df
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: jr $25
@@ -63,7 +63,7 @@ entry:
; stel: .section .mips16.fn.v_sf_sf,"ax", at progbits
; stel: .ent __fn_stub_v_sf_sf
-; stel: la $25, v_sf_sf
+; stel: la $25,v_sf_sf
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f14
; stel: jr $25
@@ -86,7 +86,7 @@ entry:
; stel: .section .mips16.fn.v_sf_df,"ax", at progbits
; stel: .ent __fn_stub_v_sf_df
-; stel: la $25, v_sf_df
+; stel: la $25,v_sf_df
; stel: mfc1 $4,$f12
; stel: mfc1 $6,$f14
; stel: mfc1 $7,$f15
@@ -110,7 +110,7 @@ entry:
; stel: .section .mips16.fn.v_df_sf,"ax", at progbits
; stel: .ent __fn_stub_v_df_sf
-; stel: la $25, v_df_sf
+; stel: la $25,v_df_sf
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: mfc1 $6,$f14
@@ -134,7 +134,7 @@ entry:
; stel: .section .mips16.fn.v_df_df,"ax", at progbits
; stel: .ent __fn_stub_v_df_df
-; stel: la $25, v_df_df
+; stel: la $25,v_df_df
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: mfc1 $6,$f14
@@ -164,7 +164,7 @@ entry:
; stel: .section .mips16.fn.sf_sf,"ax", at progbits
; stel: .ent __fn_stub_sf_sf
-; stel: la $25, sf_sf
+; stel: la $25,sf_sf
; stel: mfc1 $4,$f12
; stel: jr $25
; stel: __fn_local_sf_sf = sf_sf
@@ -184,7 +184,7 @@ entry:
; stel: .section .mips16.fn.sf_df,"ax", at progbits
; stel: .ent __fn_stub_sf_df
-; stel: la $25, sf_df
+; stel: la $25,sf_df
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: jr $25
@@ -208,7 +208,7 @@ entry:
; stel: .section .mips16.fn.sf_sf_sf,"ax", at progbits
; stel: .ent __fn_stub_sf_sf_sf
-; stel: la $25, sf_sf_sf
+; stel: la $25,sf_sf_sf
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f14
; stel: jr $25
@@ -232,7 +232,7 @@ entry:
; stel: .section .mips16.fn.sf_sf_df,"ax", at progbits
; stel: .ent __fn_stub_sf_sf_df
-; stel: la $25, sf_sf_df
+; stel: la $25,sf_sf_df
; stel: mfc1 $4,$f12
; stel: mfc1 $6,$f14
; stel: mfc1 $7,$f15
@@ -257,7 +257,7 @@ entry:
; stel: .section .mips16.fn.sf_df_sf,"ax", at progbits
; stel: .ent __fn_stub_sf_df_sf
-; stel: la $25, sf_df_sf
+; stel: la $25,sf_df_sf
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: mfc1 $6,$f14
@@ -282,7 +282,7 @@ entry:
; stel: .section .mips16.fn.sf_df_df,"ax", at progbits
; stel: .ent __fn_stub_sf_df_df
-; stel: la $25, sf_df_df
+; stel: la $25,sf_df_df
; stel: mfc1 $4,$f12
; stel: mfc1 $5,$f13
; stel: mfc1 $6,$f14
Added: llvm/trunk/test/CodeGen/Mips/hf1_body.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/hf1_body.ll?rev=191400&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/hf1_body.ll (added)
+++ llvm/trunk/test/CodeGen/Mips/hf1_body.ll Wed Sep 25 15:58:50 2013
@@ -0,0 +1,21 @@
+; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -relocation-model=pic -soft-float -mips16-hard-float < %s | FileCheck %s -check-prefix=picfp16
+
+ at x = external global float
+
+; Function Attrs: nounwind
+define void @v_sf(float %p) #0 {
+entry:
+ %p.addr = alloca float, align 4
+ store float %p, float* %p.addr, align 4
+ %0 = load float* %p.addr, align 4
+ store float %0, float* @x, align 4
+ ret void
+}
+; picfp16: .ent __fn_stub_v_sf
+; picfp16: .cpload $25
+; picfp16: .set reorder
+; picfp16: .reloc 0,R_MIPS_NONE,v_sf
+; picfp16: la $25,$__fn_local_v_sf
+; picfp16: mfc1 $4,$f12
+; picfp16: jr $25
+; picfp16: .end __fn_stub_v_sf
More information about the llvm-commits
mailing list