mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-26 21:32:10 +00:00
[Mips] Does not take in account 'use-soft-float' attribute's value when
consider to generate stubs for mips16 hard-float mode. The patch reviewed by Reed Kotler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198019 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b09f505445
commit
f84792ad48
@ -429,8 +429,7 @@ getOpndList(SmallVectorImpl<SDValue> &Ops,
|
||||
const char* Mips16HelperFunction = 0;
|
||||
bool NeedMips16Helper = false;
|
||||
|
||||
if (getTargetMachine().Options.UseSoftFloat &&
|
||||
Subtarget->inMips16HardFloat()) {
|
||||
if (Subtarget->inMips16HardFloat()) {
|
||||
//
|
||||
// currently we don't have symbols tagged with the mips16 or mips32
|
||||
// qualifier so we will assume that we don't know what kind it is.
|
||||
|
45
test/CodeGen/Mips/mips16-hf-attr.ll
Normal file
45
test/CodeGen/Mips/mips16-hf-attr.ll
Normal file
@ -0,0 +1,45 @@
|
||||
; Check that stubs generation for mips16 hard-float mode does not depend
|
||||
; on the function 'use-soft-float' attribute's value.
|
||||
; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel \
|
||||
; RUN: -mcpu=mips16 -relocation-model=pic < %s | FileCheck %s
|
||||
|
||||
define void @bar_sf() #0 {
|
||||
; CHECK: bar_sf:
|
||||
entry:
|
||||
%call1 = call float @foo(float 1.000000e+00)
|
||||
; CHECK: lw $2, %call16(foo)($3)
|
||||
; CHECK: lw $5, %got(__mips16_call_stub_sf_1)($3)
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @bar_hf() #1 {
|
||||
; CHECK: bar_hf:
|
||||
entry:
|
||||
%call1 = call float @foo(float 1.000000e+00)
|
||||
; CHECK: lw $2, %call16(foo)($3)
|
||||
; CHECK: lw $5, %got(__mips16_call_stub_sf_1)($3)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare float @foo(float) #2
|
||||
|
||||
attributes #0 = {
|
||||
nounwind
|
||||
"less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
|
||||
"no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
|
||||
"no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
|
||||
"unsafe-fp-math"="false" "use-soft-float"="false"
|
||||
}
|
||||
attributes #1 = {
|
||||
nounwind
|
||||
"less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
|
||||
"no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
|
||||
"no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
|
||||
"unsafe-fp-math"="false" "use-soft-float"="true"
|
||||
}
|
||||
attributes #2 = {
|
||||
"less-precise-fpmad"="false" "no-frame-pointer-elim"="true"
|
||||
"no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false"
|
||||
"no-nans-fp-math"="false" "stack-protector-buffer-size"="8"
|
||||
"unsafe-fp-math"="false" "use-soft-float"="true"
|
||||
}
|
Loading…
Reference in New Issue
Block a user