Detect the VAX floating point formats D and G.
And the F float, but that is float (duh), never likely to be
the double, but do it for consistency (we detect IEEE single
precision floats, too).
The T float and X float are the IEEE 64-bit and 128-bit,
but those were available only on the Alpha.
Tested on vax-netbsd.
printf("2\n");
exit(0);
}
+ if (b[0] == 0xCC && b[3] == 0xCC) {
+ /* VAX format F */
+ printf("9\n");
+ exit(0);
+ }
#endif
#if DOUBLESIZE == 8
if (b[0] == 0x9A && b[7] == 0xBF) {
printf("8\n");
exit(0);
}
+ if (b[0] == 0xCC && b[7] == 0xCC) {
+ /* VAX format D, 64-bit little-endian. */
+ printf("10\n");
+ exit(0);
+ }
+ if (b[0] == 0xD9 && b[7] == 0x99) {
+ /* VAX format G, 64-bit little-endian. */
+ printf("11\n");
+ exit(0);
+ }
#endif
#if DOUBLESIZE == 16
if (b[0] == 0x9A && b[15] == 0xBF) {
exit(0);
}
#endif
- /* Then there are old mainframe/miniframe formats like VAX, IBM, and CRAY.
+ /* Then there are old mainframe/miniframe formats like IBM, and CRAY.
* Whether those environments can still build Perl is debatable. */
printf("-1\n"); /* unknown */
exit(0);
6) echo "You have IEEE 754 128-bit big endian doubles." >&4 ;;
7) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit LEs in BE)." >&4 ;;
8) echo "You have IEEE 754 64-bit mixed endian doubles (32-bit BEs in LE)." >&4 ;;
-*) echo "Cannot figure out your double. You VAX, or something?" >&4 ;;
+9) echo "You have VAX format F 32-bit little-endian doubles." >&4 ;;
+10) echo "You have VAX format D 64-bit little-endian doubles." >&4 ;;
+11) echo "You have VAX format G 64-bit little-endian doubles." >&4 ;;
+*) echo "Cannot figure out your double. You CRAY, or something?" >&4 ;;
esac
$rm_try
* DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_VAX_F_FLOAT
+ * DOUBLE_IS_VAX_D_FLOAT
+ * DOUBLE_IS_VAX_G_FLOAT
* DOUBLE_IS_UNKNOWN_FORMAT
*/
#define DOUBLEKIND $doublekind /**/
#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_VAX_F_FLOAT 9
+#define DOUBLE_IS_VAX_D_FLOAT 10
+#define DOUBLE_IS_VAX_G_FLOAT 11
#define DOUBLE_IS_UNKNOWN_FORMAT -1
#$d_PRIfldbl PERL_PRIfldbl $sPRIfldbl /**/
#$d_PRIgldbl PERL_PRIgldbl $sPRIgldbl /**/
* DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_VAX_F_FLOAT
+ * DOUBLE_IS_VAX_D_FLOAT
+ * DOUBLE_IS_VAX_G_FLOAT
* DOUBLE_IS_UNKNOWN_FORMAT
*/
#define DOUBLEKIND 3 /**/
#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_VAX_F_FLOAT 9
+#define DOUBLE_IS_VAX_D_FLOAT 10
+#define DOUBLE_IS_VAX_G_FLOAT 11
#define DOUBLE_IS_UNKNOWN_FORMAT -1
/*#define PERL_PRIfldbl "llf" / **/
/*#define PERL_PRIgldbl "llg" / **/
#endif
/* Generated from:
- * c14530f7567d861ce42d42446fc2ee9cd3625763f65867d5f42849c337bbc361 config_h.SH
+ * 8559c6ec4e935f6478ac3149c106aed3eacfd60544281f97fd1383110d8a5cce config_h.SH
* 3b14c76342a834042da506e8c3b4269f7d545453079733cb740970ab9cc4294e uconfig.sh
* ex: set ro: */