diff options
author | Steve Ellcey <sje@cup.hp.com> | 2002-12-09 17:54:07 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2002-12-09 17:54:07 +0000 |
commit | 9ac3e73b400c1a03a03977294c6331d59380fc42 (patch) | |
tree | 7c649b2f3775a2897cd06bd008e189cfbd967e27 /gcc | |
parent | e46af8eda8570b3d2c908b99c0ca808c7c8bafa9 (diff) | |
download | gcc-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/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/calls.c | 1 | ||||
-rw-r--r-- | gcc/defaults.h | 10 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 8 | ||||
-rw-r--r-- | gcc/expmed.c | 1 | ||||
-rw-r--r-- | gcc/expr.c | 20 | ||||
-rw-r--r-- | gcc/stmt.c | 1 |
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)); @@ -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)); @@ -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)); |