Commit 6be57663 by David Edelsohn Committed by David Edelsohn

sysv4.h (ASM_OUTPUT_DEF): Undefine.

	* rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
	(HANDLE_PRAGMA_PACK): Undefine.
	(SLOW_UNALIGNED_ACCESS): Define.

From-SVN: r31213
parent 5fad8ebf
2000-01-04 David Edelsohn <edelsohn@gnu.org> 2000-01-04 David Edelsohn <edelsohn@gnu.org>
* rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
(HANDLE_PRAGMA_PACK): Undefine.
(SLOW_UNALIGNED_ACCESS): Define.
2000-01-04 David Edelsohn <edelsohn@gnu.org>
* expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
to default definition. to default definition.
(store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
......
...@@ -350,13 +350,15 @@ do { \ ...@@ -350,13 +350,15 @@ do { \
/* Undefine some things which are defined by the generic svr4.h. */ /* Undefine some things which are defined by the generic svr4.h. */
#undef ASM_DECLARE_FUNCTION_NAME
#undef ASM_FILE_END #undef ASM_FILE_END
#undef ASM_OUTPUT_CONSTRUCTOR
#undef ASM_OUTPUT_DESTRUCTOR
#undef ASM_OUTPUT_DEF
#undef ASM_OUTPUT_EXTERNAL_LIBCALL #undef ASM_OUTPUT_EXTERNAL_LIBCALL
#undef HANDLE_PRAGMA_PACK
#undef READONLY_DATA_SECTION #undef READONLY_DATA_SECTION
#undef SELECT_SECTION #undef SELECT_SECTION
#undef ASM_DECLARE_FUNCTION_NAME
#undef ASM_OUTPUT_CONSTRUCTOR
#undef ASM_OUTPUT_DESTRUCTOR
/* Use the regular svr4 definitions. */ /* Use the regular svr4 definitions. */
...@@ -397,6 +399,14 @@ do { \ ...@@ -397,6 +399,14 @@ do { \
#undef STRICT_ALIGNMENT #undef STRICT_ALIGNMENT
#define STRICT_ALIGNMENT (TARGET_STRICT_ALIGN) #define STRICT_ALIGNMENT (TARGET_STRICT_ALIGN)
/* Define this macro to be the value 1 if unaligned accesses have a cost
many times greater than aligned accesses, for example if they are
emulated in a trap handler. */
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) \
((STRICT_ALIGNMENT \
|| (((MODE) == SFmode || (MODE) == DFmode || (MODE) == DImode) \
&& (ALIGN) < 4)) ? 1 : 0)
/* Alignment in bits of the stack boundary. Note, in order to allow building /* Alignment in bits of the stack boundary. Note, in order to allow building
one set of libraries with -mno-eabi instead of eabi libraries and non-eabi one set of libraries with -mno-eabi instead of eabi libraries and non-eabi
versions, just use 64 as the stack boundary. */ versions, just use 64 as the stack boundary. */
......
...@@ -4731,7 +4731,9 @@ moves. This can cause significantly more instructions to be produced. ...@@ -4731,7 +4731,9 @@ moves. This can cause significantly more instructions to be produced.
Therefore, do not set this macro non-zero if unaligned accesses only add a Therefore, do not set this macro non-zero if unaligned accesses only add a
cycle or two to the time for a memory access. cycle or two to the time for a memory access.
If the value of this macro is always zero, it need not be defined. If the value of this macro is always zero, it need not be defined. If
this macro is defined, it should produce a non-zero value when
@code{STRICT_ALIGNMENT} is non-zero.
@findex DONT_REDUCE_ADDR @findex DONT_REDUCE_ADDR
@item DONT_REDUCE_ADDR @item DONT_REDUCE_ADDR
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment