mips.c (mips_address_insns): Treat BLKmode specially.
* config/mips/mips.c (mips_address_insns): Treat BLKmode specially. * config/mips/mips.md: Expand comment above unaligned loads and stores. From-SVN: r78129
This commit is contained in:
parent
4221057e8f
commit
656f37ee62
3 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-02-19 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
|
||||
* config/mips/mips.md: Expand comment above unaligned loads and stores.
|
||||
|
||||
2004-02-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
|
||||
|
|
|
@ -1234,8 +1234,13 @@ mips_address_insns (rtx x, enum machine_mode mode)
|
|||
struct mips_address_info addr;
|
||||
int factor;
|
||||
|
||||
/* Each word of a multi-word value will be accessed individually. */
|
||||
factor = (GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
|
||||
if (mode == BLKmode)
|
||||
/* BLKmode is used for single unaligned loads and stores. */
|
||||
factor = 1;
|
||||
else
|
||||
/* Each word of a multi-word value will be accessed individually. */
|
||||
factor = (GET_MODE_SIZE (mode) + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
|
||||
|
||||
if (mips_classify_address (&addr, x, mode, false))
|
||||
switch (addr.type)
|
||||
{
|
||||
|
|
|
@ -4059,6 +4059,10 @@ dsrl\t%3,%3,1\n\
|
|||
;; refers to just the first or the last byte (depending on endianness).
|
||||
;; We therefore use two memory operands to each instruction, one to
|
||||
;; describe the rtl effect and one to use in the assembly output.
|
||||
;;
|
||||
;; Operands 0 and 1 are the rtl-level target and source respectively.
|
||||
;; This allows us to use the standard length calculations for the "load"
|
||||
;; and "store" type attributes.
|
||||
|
||||
(define_insn "mov_lwl"
|
||||
[(set (match_operand:SI 0 "register_operand" "=d")
|
||||
|
|
Loading…
Add table
Reference in a new issue