[LLVMbugs] [Bug 14230] New: ARM AACPS-VFP ABI: possible mismatch with spec
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Oct 31 12:24:03 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=14230
Bug #: 14230
Summary: ARM AACPS-VFP ABI: possible mismatch with spec
Product: libraries
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: ARM
AssignedTo: unassignedbugs at nondot.org
ReportedBy: mren at apple.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Given the following testing case:
double g_d;
void backfill(float f1, double d1, double d2, double d3, double d4, double d5,
double d6, double d7, double d8, float f2) {
g_d = f1 + f2;
g_d += d7;
g_d += d8;
}
C.2.vfp If the argument is a VFP CPRC then any VFP registers that are
unallocated are marked as unavailable.
The last "float f2" should be allocated on stack, but with
clang -cc1 -triple armv7---eabi -target-abi aapcs -mfloat-abi hard -S
backfill.c -o - -O3
vldr d16, [sp]
vadd.f32 s0, s0, s1
"float f2" is in s1.
Another testing case:
double g_d;
void backfill2(float f1, double d1, double d2, double d3, double d4, double d5,
double d6, double d7, double d8, int i) {
g_d = f1 + i;
g_d += d7;
g_d += d8;
}
C.4 If the size in words of the argument is not more than r4 minus NCRN, the
argument is copied into core registers, starting at the NCRN.
The last "int i" should be allocated to core register even though "double d8"
is on stack.
vldr s2, [sp, #8]
vldr d16, [sp]
vcvt.f32.s32 s2, s2
vadd.f32 s0, s2, s0
"int i" is on stack.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list