summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/rs6000/darwin.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/config/rs6000/darwin.h')
-rw-r--r--contrib/gcc/config/rs6000/darwin.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/contrib/gcc/config/rs6000/darwin.h b/contrib/gcc/config/rs6000/darwin.h
index cb6b4b77..81c24e7 100644
--- a/contrib/gcc/config/rs6000/darwin.h
+++ b/contrib/gcc/config/rs6000/darwin.h
@@ -35,6 +35,9 @@ Boston, MA 02111-1307, USA. */
#define TARGET_TOC 0
#define TARGET_NO_TOC 1
+/* Handle #pragma weak and #pragma pack. */
+#define HANDLE_SYSV_PRAGMA
+
/* The Darwin ABI always includes AltiVec, can't be (validly) turned
off. */
@@ -57,8 +60,8 @@ Boston, MA 02111-1307, USA. */
#undef FRAME_POINTER_REGNUM
#define FRAME_POINTER_REGNUM 30
-#undef PIC_OFFSET_TABLE_REGNUM
-#define PIC_OFFSET_TABLE_REGNUM 31
+#undef RS6000_PIC_OFFSET_TABLE_REGNUM
+#define RS6000_PIC_OFFSET_TABLE_REGNUM 31
/* Pad the outgoing args area to 16 bytes instead of the usual 8. */
@@ -218,7 +221,10 @@ Boston, MA 02111-1307, USA. */
&& TYPE_FIELDS (STRUCT) != 0 \
&& DECL_MODE (TYPE_FIELDS (STRUCT)) == DFmode \
? MAX (MAX ((COMPUTED), (SPECIFIED)), 64) \
+ : (TARGET_ALTIVEC && TREE_CODE (STRUCT) == VECTOR_TYPE) \
+ ? MAX (MAX ((COMPUTED), (SPECIFIED)), 128) \
: MAX ((COMPUTED), (SPECIFIED)))
+
/* XXX: Darwin supports neither .quad, or .llong, but it also doesn't
support 64 bit powerpc either, so this just keeps things happy. */
#define DOUBLE_INT_ASM_OP "\t.quad\t"
@@ -227,3 +233,7 @@ Boston, MA 02111-1307, USA. */
space/speed. */
#undef MAX_LONG_TYPE_SIZE
#define MAX_LONG_TYPE_SIZE 32
+
+/* For binary compatibility with 2.95; Darwin C APIs use bool from
+ stdbool.h, which was an int-sized enum in 2.95. */
+#define BOOL_TYPE_SIZE INT_TYPE_SIZE
OpenPOWER on IntegriCloud