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/expr.c | |
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/expr.c')
-rw-r--r-- | gcc/expr.c | 20 |
1 files changed, 4 insertions, 16 deletions
@@ -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)); |