sysv4.h (ASM_OUTPUT_DEF): Undefine.
authorDavid Edelsohn <edelsohn@gnu.org>
Tue, 4 Jan 2000 20:29:31 +0000 (20:29 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Tue, 4 Jan 2000 20:29:31 +0000 (15:29 -0500)
* rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
(HANDLE_PRAGMA_PACK): Undefine.
(SLOW_UNALIGNED_ACCESS): Define.

From-SVN: r31213

gcc/ChangeLog
gcc/config/rs6000/sysv4.h
gcc/tm.texi

index 606af6e9ed5a857fa4247ea66adacf6db050a848..159036699fb5767d9c6510860655e8df7f5067e1 100644 (file)
@@ -1,3 +1,9 @@
+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
index b3d52e0e918b1f23f6f57be6754337a82e4c4441..65b6cd5f104aab117d4276e96031e7499b80286a 100644 (file)
@@ -350,13 +350,15 @@ do {                                                                      \
 
 /* Undefine some things which are defined by the generic svr4.h.  */
 
+#undef ASM_DECLARE_FUNCTION_NAME
 #undef ASM_FILE_END
+#undef ASM_OUTPUT_CONSTRUCTOR
+#undef ASM_OUTPUT_DESTRUCTOR
+#undef ASM_OUTPUT_DEF
 #undef ASM_OUTPUT_EXTERNAL_LIBCALL
+#undef HANDLE_PRAGMA_PACK
 #undef READONLY_DATA_SECTION
 #undef SELECT_SECTION
-#undef ASM_DECLARE_FUNCTION_NAME
-#undef ASM_OUTPUT_CONSTRUCTOR
-#undef ASM_OUTPUT_DESTRUCTOR
 
 /* Use the regular svr4 definitions.  */
 
@@ -397,6 +399,14 @@ do {                                                                       \
 #undef STRICT_ALIGNMENT
 #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
    one set of libraries with -mno-eabi instead of eabi libraries and non-eabi
    versions, just use 64 as the stack boundary.  */
index 95a252b8b14f41df50e61b7f71ce6f323554d13c..6a3ff5185d5cccc27e0cbe76d0ff29981950bf58 100644 (file)
@@ -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
 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
 @item DONT_REDUCE_ADDR