xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat constant-pool addresses as "mode-dependent".
* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat constant-pool addresses as "mode-dependent". From-SVN: r50983
This commit is contained in:
parent
d861b64075
commit
970b15bd62
|
@ -1,3 +1,8 @@
|
|||
2002-03-18 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
|
||||
constant-pool addresses as "mode-dependent".
|
||||
|
||||
Mon Mar 18 18:12:48 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.c (override_options): Disallow preferred_stack_boundary to be
|
||||
|
|
|
@ -1260,7 +1260,19 @@ typedef struct xtensa_args {
|
|||
} while (0)
|
||||
|
||||
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) {}
|
||||
/* Treat constant-pool references as "mode dependent" since they can
|
||||
only be accessed with SImode loads. This works around a bug in the
|
||||
combiner where a constant pool reference is temporarily converted
|
||||
to an HImode load, which is then assumed to zero-extend based on
|
||||
our definition of LOAD_EXTEND_OP. This is wrong because the high
|
||||
bits of a 16-bit value in the constant pool are now sign-extended
|
||||
by default. */
|
||||
|
||||
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL) \
|
||||
do { \
|
||||
if (constantpool_address_p (ADDR)) \
|
||||
goto LABEL; \
|
||||
} while (0)
|
||||
|
||||
/* If we are referencing a function that is static, make the SYMBOL_REF
|
||||
special so that we can generate direct calls to it even with -fpic. */
|
||||
|
|
Loading…
Reference in New Issue