summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-26 17:01:52 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-26 17:01:52 +0000
commit931645bc159f79ff57d4d6a64bbe6682be24e7c0 (patch)
tree717d0c6a88b222f61ac5ae9c76912e5efaf72c83
parent46645ed9e31b44db4b180681563aa9fd1bbaec96 (diff)
downloadgcc-931645bc159f79ff57d4d6a64bbe6682be24e7c0.tar.gz
* config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
(arm_block_move_unaligned_straight): Likewise. (arm_adjust_block_mem): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196293 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c17
2 files changed, 14 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7ea63ecce82..fc6b1d6b363 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
+ * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
+ (arm_block_move_unaligned_straight): Likewise.
+ (arm_adjust_block_mem): Likewise.
+
+2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
+
PR target/48901
* config/lm32/lm32.c (gen_int_relational): Remove unused variables
temp, cond and label.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 3e7bd7f058c..677d6da027d 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2607,7 +2607,7 @@ const_ok_for_op (HOST_WIDE_INT i, enum rtx_code code)
int
const_ok_for_dimode_op (HOST_WIDE_INT i, enum rtx_code code)
{
- HOST_WIDE_INT hi_val = (i >> 16 >> 16) & 0xFFFFFFFF;
+ HOST_WIDE_INT hi_val = (i >> 32) & 0xFFFFFFFF;
HOST_WIDE_INT lo_val = i & 0xFFFFFFFF;
rtx hi = GEN_INT (hi_val);
rtx lo = GEN_INT (lo_val);
@@ -11347,10 +11347,10 @@ arm_block_move_unaligned_straight (rtx dstbase, rtx srcbase,
/* Use hard registers if we have aligned source or destination so we can use
load/store multiple with contiguous registers. */
if (dst_aligned || src_aligned)
- for (i = 0; i < (HOST_WIDE_INT) interleave_factor; i++)
+ for (i = 0; i < interleave_factor; i++)
regs[i] = gen_rtx_REG (SImode, i);
else
- for (i = 0; i < (HOST_WIDE_INT) interleave_factor; i++)
+ for (i = 0; i < interleave_factor; i++)
regs[i] = gen_reg_rtx (SImode);
dst = copy_addr_to_reg (XEXP (dstbase, 0));
@@ -11362,7 +11362,7 @@ arm_block_move_unaligned_straight (rtx dstbase, rtx srcbase,
For copying the last bytes we want to subtract this offset again. */
src_autoinc = dst_autoinc = 0;
- for (i = 0; i < (HOST_WIDE_INT) interleave_factor; i++)
+ for (i = 0; i < interleave_factor; i++)
regnos[i] = i;
/* Copy BLOCK_SIZE_BYTES chunks. */
@@ -11378,7 +11378,7 @@ arm_block_move_unaligned_straight (rtx dstbase, rtx srcbase,
}
else
{
- for (j = 0; j < (HOST_WIDE_INT) interleave_factor; j++)
+ for (j = 0; j < interleave_factor; j++)
{
addr = plus_constant (Pmode, src, (srcoffset + j * UNITS_PER_WORD
- src_autoinc));
@@ -11398,7 +11398,7 @@ arm_block_move_unaligned_straight (rtx dstbase, rtx srcbase,
}
else
{
- for (j = 0; j < (HOST_WIDE_INT) interleave_factor; j++)
+ for (j = 0; j < interleave_factor; j++)
{
addr = plus_constant (Pmode, dst, (dstoffset + j * UNITS_PER_WORD
- dst_autoinc));
@@ -11417,7 +11417,7 @@ arm_block_move_unaligned_straight (rtx dstbase, rtx srcbase,
words = remaining / UNITS_PER_WORD;
- gcc_assert (words < (HOST_WIDE_INT) interleave_factor);
+ gcc_assert (words < interleave_factor);
if (src_aligned && words > 1)
{
@@ -11555,8 +11555,7 @@ arm_adjust_block_mem (rtx mem, HOST_WIDE_INT length, rtx *loop_reg,
/* Although the new mem does not refer to a known location,
it does keep up to LENGTH bytes of alignment. */
*loop_mem = change_address (mem, BLKmode, *loop_reg);
- set_mem_align (*loop_mem,
- MIN ((HOST_WIDE_INT) MEM_ALIGN (mem), length * BITS_PER_UNIT));
+ set_mem_align (*loop_mem, MIN (MEM_ALIGN (mem), length * BITS_PER_UNIT));
}
/* From mips_block_move_loop: