mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-29 07:39:27 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191400 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2ce3ac8dd8
commit
55d016886c
@ -421,7 +421,7 @@ static void createFPFnStub(Function *F, Module *M, FPParamVariant PV,
|
|||||||
std::string Name = F->getName();
|
std::string Name = F->getName();
|
||||||
std::string SectionName = ".mips16.fn." + Name;
|
std::string SectionName = ".mips16.fn." + Name;
|
||||||
std::string StubName = "__fn_stub_" + Name;
|
std::string StubName = "__fn_stub_" + Name;
|
||||||
std::string LocalName = "__fn_local_" + Name;
|
std::string LocalName = "$$__fn_local_" + Name;
|
||||||
Function *FStub = Function::Create
|
Function *FStub = Function::Create
|
||||||
(F->getFunctionType(),
|
(F->getFunctionType(),
|
||||||
Function::InternalLinkage, StubName, M);
|
Function::InternalLinkage, StubName, M);
|
||||||
@ -436,7 +436,7 @@ static void createFPFnStub(Function *F, Module *M, FPParamVariant PV,
|
|||||||
IAH.Out(" .set macro");
|
IAH.Out(" .set macro");
|
||||||
if (PicMode) {
|
if (PicMode) {
|
||||||
IAH.Out(".set noreorder");
|
IAH.Out(".set noreorder");
|
||||||
IAH.Out(".cpload $$2");
|
IAH.Out(".cpload $$25");
|
||||||
IAH.Out(".set reorder");
|
IAH.Out(".set reorder");
|
||||||
IAH.Out(".reloc 0,R_MIPS_NONE," + Name);
|
IAH.Out(".reloc 0,R_MIPS_NONE," + Name);
|
||||||
IAH.Out("la $$25," + LocalName);
|
IAH.Out("la $$25," + LocalName);
|
||||||
|
21
test/CodeGen/Mips/hf1_body.ll
Normal file
21
test/CodeGen/Mips/hf1_body.ll
Normal file
@ -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
|
||||||
|
|
||||||
|
@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
|
Loading…
x
Reference in New Issue
Block a user