re PR target/45094 ([arm] wrong instructions for dword move in some cases)
gcc/ PR target/45094 * config/arm/arm.c (output_move_double): Fix typo generating instructions ('ldr'->'str'). gcc/testsuite/ PR target/45094 * gcc.target/arm/pr45094.c: New test. From-SVN: r163338
This commit is contained in:
parent
38e3c1e18e
commit
8019fcfb55
|
@ -1,3 +1,9 @@
|
||||||
|
2010-08-18 Yao Qi <yao@codesourcery.com>
|
||||||
|
|
||||||
|
PR target/45094
|
||||||
|
* config/arm/arm.c (output_move_double): Fix typo generating
|
||||||
|
instructions ('ldr'->'str').
|
||||||
|
|
||||||
2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
|
2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||||
|
|
||||||
PR rtl-optimization/42575
|
PR rtl-optimization/42575
|
||||||
|
|
|
@ -12944,13 +12944,13 @@ output_move_double (rtx *operands)
|
||||||
{
|
{
|
||||||
if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
|
if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
|
||||||
{
|
{
|
||||||
output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
|
output_asm_insn ("str%?\t%0, [%1, %2]!", otherops);
|
||||||
output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
|
output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
|
output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
|
||||||
output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
|
output_asm_insn ("str%?\t%0, [%1], %2", otherops);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
|
else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2010-08-18 Yao Qi <yao@codesourcery.com>
|
||||||
|
|
||||||
|
PR target/45094
|
||||||
|
* gcc.target/arm/pr45094.c: New test.
|
||||||
|
|
||||||
2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
|
2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||||
|
|
||||||
* gcc.target/arm/mla-1.c: Use thumb-friendly architecture.
|
* gcc.target/arm/mla-1.c: Use thumb-friendly architecture.
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* { dg-do run } */
|
||||||
|
/* { dg-require-effective-target arm_neon_hw } */
|
||||||
|
/* { dg-options "-O2 -mcpu=cortex-a8" } */
|
||||||
|
/* { dg-add-options arm_neon } */
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
long long buffer[32];
|
||||||
|
|
||||||
|
void __attribute__((noinline)) f(long long *p, int n)
|
||||||
|
{
|
||||||
|
while (--n >= 0)
|
||||||
|
{
|
||||||
|
*p = 1;
|
||||||
|
p += 32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
f(buffer, 1);
|
||||||
|
|
||||||
|
if (!buffer[0])
|
||||||
|
abort();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue