Commit 996ed075 by Jakub Jelinek Committed by Jakub Jelinek

h8300.h (TARGET_H8300H, [...]): Make sure UNITS_PER_WORD and BITS_PER_WORD are…

h8300.h (TARGET_H8300H, [...]): Make sure UNITS_PER_WORD and BITS_PER_WORD are compile time constants when...


	* config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
	UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
	compiling libgcc2.
	* config/mips/mips.h (TARGET_64BIT): Likewise.
	* config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
	* libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
	of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
	dsps.  Give routines proper names if SI/DI modes are not used.
	* longlong.h: Use DWunion instead of DIunion.

From-SVN: r31095
parent 9310f1eb
1999-12-17 Jakub Jelinek <jakub@redhat.com>
* config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
compiling libgcc2.
* config/mips/mips.h (TARGET_64BIT): Likewise.
* config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
* libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
of {SI,DI}type and DIunion. Define these types to QI/HI modes on
dsps. Give routines proper names if SI/DI modes are not used.
* longlong.h: Use DWunion instead of DIunion.
1999-12-26 Zack Weinberg <zack@wolery.cumb.org>
* acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
......
......@@ -112,6 +112,23 @@ extern int target_flags;
{"align-300", 8192, "Use H8/300 alignment rules"}, \
{ "", TARGET_DEFAULT, NULL}}
#ifdef IN_LIBGCC2
#undef TARGET_H8300H
#undef TARGET_H8300S
/* If compiling libgcc2, make these compile time constants based on what
flags are we actually compiling with. */
#ifdef __H8300H__
#define TARGET_H8300H 1
#else
#define TARGET_H8300H 0
#endif
#ifdef __H8300S__
#define TARGET_H8300S 1
#else
#define TARGET_H8300S 0
#endif
#endif /* !IN_LIBGCC2 */
/* Do things that must be done once at start up. */
#define OVERRIDE_OPTIONS \
......
......@@ -481,6 +481,16 @@ extern void sbss_section PARAMS ((void));
#define MIPS_ISA_DEFAULT 1
#endif
#ifdef IN_LIBGCC2
#undef TARGET_64BIT
/* Make this compile time constant for libgcc2 */
#ifdef __mips64
#define TARGET_64BIT 1
#else
#define TARGET_64BIT 0
#endif
#else /* IN_LIBGCC2 */
#ifndef MULTILIB_ENDIAN_DEFAULT
#if TARGET_ENDIAN_DEFAULT == 0
#define MULTILIB_ENDIAN_DEFAULT "EL"
......
......@@ -303,6 +303,16 @@ extern int target_flags;
#define TARGET_UPDATE (! TARGET_NO_UPDATE)
#define TARGET_FUSED_MADD (! TARGET_NO_FUSED_MADD)
#ifdef IN_LIBGCC2
/* For libgcc2 we make sure this is a compile time constant */
#undef TARGET_POWERPC64
#ifdef __64BIT__
#define TARGET_POWERPC64 1
#else
#define TARGET_POWERPC64 0
#endif
#endif
/* Pseudo target to indicate whether the object format is ELF
(to get around not having conditional compilation in the md file) */
#ifndef TARGET_ELF
......
......@@ -195,7 +195,7 @@ extern UDItype __udiv_qrnnd __P ((UDItype *, UDItype, UDItype, UDItype));
/* Call libgcc1 routine. */
#define umul_ppmm(w1, w0, u, v) \
do { \
DIunion __w; \
DWunion __w; \
__w.ll = __umulsidi3 (u, v); \
w1 = __w.s.high; \
w0 = __w.s.low; \
......@@ -1383,7 +1383,7 @@ UDItype __umulsidi3 (USItype, USItype);
#if !defined (__umulsidi3)
#define __umulsidi3(u, v) \
({DIunion __w; \
({DWunion __w; \
umul_ppmm (__w.s.high, __w.s.low, u, v); \
__w.ll; })
#endif
......
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