@@ -483,6 +483,8 @@ rs6000_target_modify_macros (bool define_p,
HOST_WIDE_INT flags,
/* Define this when supporting context-sensitive keywords. */
if (!flag_iso)
rs6000_define_or_undefine_macro (define_p, "__APPLE_ALTIVEC__");
+ if (rs6000_aix_extabi)
+ rs6000_define_or_undefine_macro (define_p, "__EXTABI__");
}
/* Note that the OPTION_MASK_VSX flag is automatically turned on in
the following conditions:
@@ -2512,6 +2512,9 @@ rs6000_debug_reg_global (void)
if (rs6000_altivec_abi)
fprintf (stderr, DEBUG_FMT_S, "altivec_abi", "true");
+ if (rs6000_aix_extabi)
+ fprintf (stderr, DEBUG_FMT_S, "AIX vec-extabi", "true");
+
if (rs6000_darwin64_abi)
fprintf (stderr, DEBUG_FMT_S, "darwin64_abi", "true");
@@ -9815,7 +9818,7 @@ rs6000_conditional_register_usage (void)
call_used_regs[i] = 1;
/* AIX reserves VR20:31 in non-extended ABI mode. */
- if (TARGET_XCOFF)
+ if (TARGET_XCOFF && !rs6000_aix_extabi)
for (i = FIRST_ALTIVEC_REGNO + 20; i < FIRST_ALTIVEC_REGNO + 32; ++i)
fixed_regs[i] = call_used_regs[i] = 1;
}
@@ -352,6 +352,7 @@ mdebug=
Target RejectNegative Joined
-mdebug= Enable debug output.
+; Altivec ABI
mabi=altivec
Target RejectNegative Var(rs6000_altivec_abi) Save
Use the AltiVec ABI extensions.
@@ -360,6 +361,16 @@ mabi=no-altivec
Target RejectNegative Var(rs6000_altivec_abi, 0)
Do not use the AltiVec ABI extensions.
+; AIX Extended vector ABI
+mabi=vec-extabi
+Target RejectNegative Var(rs6000_aix_extabi, 1) Save
+Use the AIX Vector Extended ABI
+
+mabi=vec-default
+Target RejectNegative Var(rs6000_aix_extabi, 0)
+Do not use the AIX Vector Extended ABI
+
+; PPC64 Linux ELF ABI
mabi=elfv1
Target RejectNegative Var(rs6000_elf_abi, 1) Save
Use the ELFv1 ABI.
@@ -27509,9 +27509,10 @@ SVR4 ABI)@.
@item -mabi=@var{abi-type}
@opindex mabi
Extend the current ABI with a particular extension, or remove such extension.
-Valid values are @samp{altivec}, @samp{no-altivec},
+Valid values are: @samp{altivec}, @samp{no-altivec},
@samp{ibmlongdouble}, @samp{ieeelongdouble},
-@samp{elfv1}, @samp{elfv2}@.
+@samp{elfv1}, @samp{elfv2},
+and for AIX: @samp{vec-extabi}, @samp{vec-default}@.
@item -mabi=ibmlongdouble
@opindex mabi=ibmlongdouble