re PR target/51835 (ARM EABI violation when passing arguments to helper floating functions like __aeabi_d2iz)
2012-01-30 Bin Cheng <bin.cheng@arm.com> PR target/51835 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI for __aeabi_d2iz/__aeabi_d2uiz with hard-float. testcases: PR target/51835 * gcc.target/arm/pr51835.c: New testcase. From-SVN: r183733
This commit is contained in:
parent
3efe2bf72b
commit
ab07692c1a
|
@ -1,3 +1,9 @@
|
||||||
|
2012-01-30 Bin Cheng <bin.cheng@arm.com>
|
||||||
|
|
||||||
|
PR target/51835
|
||||||
|
* config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
|
||||||
|
for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
|
||||||
|
|
||||||
2012-01-30 Richard Guenther <rguenther@suse.de>
|
2012-01-30 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/52028
|
PR tree-optimization/52028
|
||||||
|
|
|
@ -3679,6 +3679,10 @@ arm_libcall_uses_aapcs_base (const_rtx libcall)
|
||||||
convert_optab_libfunc (sext_optab, SFmode, HFmode));
|
convert_optab_libfunc (sext_optab, SFmode, HFmode));
|
||||||
add_libcall (libcall_htab,
|
add_libcall (libcall_htab,
|
||||||
convert_optab_libfunc (trunc_optab, HFmode, SFmode));
|
convert_optab_libfunc (trunc_optab, HFmode, SFmode));
|
||||||
|
add_libcall (libcall_htab,
|
||||||
|
convert_optab_libfunc (sfix_optab, SImode, DFmode));
|
||||||
|
add_libcall (libcall_htab,
|
||||||
|
convert_optab_libfunc (ufix_optab, SImode, DFmode));
|
||||||
add_libcall (libcall_htab,
|
add_libcall (libcall_htab,
|
||||||
convert_optab_libfunc (sfix_optab, DImode, DFmode));
|
convert_optab_libfunc (sfix_optab, DImode, DFmode));
|
||||||
add_libcall (libcall_htab,
|
add_libcall (libcall_htab,
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-01-30 Bin Cheng <bin.cheng@arm.com>
|
||||||
|
|
||||||
|
PR target/51835
|
||||||
|
* gcc.target/arm/pr51835.c: New testcase.
|
||||||
|
|
||||||
2012-01-30 Richard Guenther <rguenther@suse.de>
|
2012-01-30 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/52028
|
PR tree-optimization/52028
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O2 -mfloat-abi=hard -mfpu=fpv4-sp-d16" } */
|
||||||
|
/* { dg-require-effective-target arm_thumb2_ok } */
|
||||||
|
|
||||||
|
int func1 (double d)
|
||||||
|
{
|
||||||
|
return (int)d;
|
||||||
|
}
|
||||||
|
unsigned int func2 (double d)
|
||||||
|
{
|
||||||
|
return (unsigned int)d;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* { dg-final { scan-assembler-times "fmrrd\[\\t \]+r0,\[\\t \]*r1,\[\\t \]*d0" 2 } } */
|
Loading…
Reference in New Issue