aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2002-12-09 17:54:07 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2002-12-09 17:54:07 +0000
commit9ac3e73b400c1a03a03977294c6331d59380fc42 (patch)
tree7c649b2f3775a2897cd06bd008e189cfbd967e27 /gcc
parente46af8eda8570b3d2c908b99c0ca808c7c8bafa9 (diff)
downloadgcc-9ac3e73b400c1a03a03977294c6331d59380fc42.zip
gcc-9ac3e73b400c1a03a03977294c6331d59380fc42.tar.gz
gcc-9ac3e73b400c1a03a03977294c6331d59380fc42.tar.bz2
tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
* doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition. * calls.c (store_unaligned_arguments_into_pseudos) Remove FUNCTION_ARG_REG_LITTLE_ENDIAN. * stmt.c (expand_return): Ditto. * expr.c (move_block_from_reg): Ditto. (copy_blkmode_from_reg): Ditto. * expmed.c (store_bit_field): Ditto. From-SVN: r59962
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/calls.c1
-rw-r--r--gcc/defaults.h10
-rw-r--r--gcc/doc/tm.texi8
-rw-r--r--gcc/expmed.c1
-rw-r--r--gcc/expr.c20
-rw-r--r--gcc/stmt.c1
7 files changed, 15 insertions, 37 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ec9883..3cb1aa8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2002-12-09 Steve Ellcey <sje@cup.hp.com>
+
+ * doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
+ * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
+ * calls.c (store_unaligned_arguments_into_pseudos) Remove
+ FUNCTION_ARG_REG_LITTLE_ENDIAN.
+ * stmt.c (expand_return): Ditto.
+ * expr.c (move_block_from_reg): Ditto.
+ (copy_blkmode_from_reg): Ditto.
+ * expmed.c (store_bit_field): Ditto.
+
2002-12-09 Svein E. Seldal <Svein.Seldal@solidas.com>
* config.gcc: Added tic4x-* target as an alias to c4x-*
diff --git a/gcc/calls.c b/gcc/calls.c
index 99722b5..41725b5 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1071,7 +1071,6 @@ store_unaligned_arguments_into_pseudos (args, num_actuals)
this means we must skip the empty high order bytes when
calculating the bit offset. */
if (BYTES_BIG_ENDIAN
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN
&& bytes < UNITS_PER_WORD)
big_endian_correction = (BITS_PER_WORD - (bytes * BITS_PER_UNIT));
diff --git a/gcc/defaults.h b/gcc/defaults.h
index a3b5f7e..0c71996 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -513,16 +513,6 @@ You Lose! You must define PREFERRED_DEBUGGING_TYPE!
#define PREFERRED_DEBUGGING_TYPE NO_DEBUG
#endif
-/* This is set to 1 if BYTES_BIG_ENDIAN is defined but the target uses a
- little-endian method of passing and returning structures in registers.
- On the HP-UX IA64 and PA64 platforms structures are aligned differently
- then integral values and setting this value to 1 will allow for the
- special handling of structure arguments and return values in regs. */
-
-#ifndef FUNCTION_ARG_REG_LITTLE_ENDIAN
-#define FUNCTION_ARG_REG_LITTLE_ENDIAN 0
-#endif
-
/* Define codes for all the float formats that we know of. */
#define UNKNOWN_FLOAT_FORMAT 0
#define IEEE_FLOAT_FORMAT 1
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index b8f2b93..342f609 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -3584,14 +3584,6 @@ nonzero, the caller does not make a copy. Instead, it passes a pointer to the
determined that the value won't be modified, it need not make a copy;
otherwise a copy must be made.
-@findex FUNCTION_ARG_REG_LITTLE_ENDIAN
-@item FUNCTION_ARG_REG_LITTLE_ENDIAN
-If defined TRUE on a big-endian system then structure arguments passed
-(and returned) in registers are passed in a little-endian manner instead of
-the big-endian manner. On the HP-UX IA64 and PA64 platforms structures are
-aligned differently then integral values and setting this value to true will
-allow for the special handling of structure arguments and return values.
-
@findex CUMULATIVE_ARGS
@item CUMULATIVE_ARGS
A C type for declaring a variable that is used as the first argument of
diff --git a/gcc/expmed.c b/gcc/expmed.c
index d1c89f2..5eb933c 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -404,7 +404,6 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, total_size)
But as we have it, it counts within whatever size OP0 now has.
On a bigendian machine, these are not the same, so convert. */
if (BYTES_BIG_ENDIAN
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN
&& GET_CODE (op0) != MEM
&& unit > GET_MODE_BITSIZE (GET_MODE (op0)))
bitpos += unit - GET_MODE_BITSIZE (GET_MODE (op0));
diff --git a/gcc/expr.c b/gcc/expr.c
index 144bc00..85d329f 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2147,8 +2147,7 @@ move_block_from_reg (regno, x, nregs, size)
/* If SIZE is that of a mode no bigger than a word, just use that
mode's store operation. */
if (size <= UNITS_PER_WORD
- && (mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0)) != BLKmode
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN)
+ && (mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0)) != BLKmode)
{
emit_move_insn (adjust_address (x, mode, 0), gen_rtx_REG (mode, regno));
return;
@@ -2157,9 +2156,7 @@ move_block_from_reg (regno, x, nregs, size)
/* Blocks smaller than a word on a BYTES_BIG_ENDIAN machine must be aligned
to the left before storing to memory. Note that the previous test
doesn't handle all cases (e.g. SIZE == 3). */
- if (size < UNITS_PER_WORD
- && BYTES_BIG_ENDIAN
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN)
+ if (size < UNITS_PER_WORD && BYTES_BIG_ENDIAN)
{
rtx tem = operand_subword (x, 0, 1, BLKmode);
rtx shift;
@@ -2523,26 +2520,17 @@ copy_blkmode_from_reg (tgtblk, srcreg, type)
}
/* This code assumes srcreg is at least a full word. If it isn't, copy it
- into a new pseudo which is a full word.
+ into a new pseudo which is a full word. */
- If FUNCTION_ARG_REG_LITTLE_ENDIAN is set and convert_to_mode does a copy,
- the wrong part of the register gets copied so we fake a type conversion
- in place. */
if (GET_MODE (srcreg) != BLKmode
&& GET_MODE_SIZE (GET_MODE (srcreg)) < UNITS_PER_WORD)
- {
- if (FUNCTION_ARG_REG_LITTLE_ENDIAN)
- srcreg = simplify_gen_subreg (word_mode, srcreg, GET_MODE (srcreg), 0);
- else
- srcreg = convert_to_mode (word_mode, srcreg, TREE_UNSIGNED (type));
- }
+ srcreg = convert_to_mode (word_mode, srcreg, TREE_UNSIGNED (type));
/* Structures whose size is not a multiple of a word are aligned
to the least significant byte (to the right). On a BYTES_BIG_ENDIAN
machine, this means we must skip the empty high order bytes when
calculating the bit offset. */
if (BYTES_BIG_ENDIAN
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN
&& bytes % UNITS_PER_WORD)
big_endian_correction
= (BITS_PER_WORD - ((bytes % UNITS_PER_WORD) * BITS_PER_UNIT));
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 360abe1..fdae2b8 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -3106,7 +3106,6 @@ expand_return (retval)
machine, this means we must skip the empty high order bytes when
calculating the bit offset. */
if (BYTES_BIG_ENDIAN
- && !FUNCTION_ARG_REG_LITTLE_ENDIAN
&& bytes % UNITS_PER_WORD)
big_endian_correction = (BITS_PER_WORD - ((bytes % UNITS_PER_WORD)
* BITS_PER_UNIT));