From 3d1e3a2306f8ff4110c4d09c525af7579899755e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krystian=20Bac=C5=82awski?= Date: Mon, 13 Feb 2012 22:19:19 -0800 Subject: [PATCH] Sort individual patches. Remove cruft. --- patches/gcc-2.95.3/patch | 4949 ++++++++++---------------------------- 1 file changed, 1214 insertions(+), 3735 deletions(-) diff --git a/patches/gcc-2.95.3/patch b/patches/gcc-2.95.3/patch index 2a316e4..10888c1 100644 --- a/patches/gcc-2.95.3/patch +++ b/patches/gcc-2.95.3/patch @@ -1,4 +1,3 @@ -diff -ruN --exclude=CVS gcc-2.95.3/config.guess gcc/config.guess --- gcc-2.95.3/config.guess Wed Mar 8 05:52:57 2000 +++ gcc/config.guess Sat Oct 13 18:29:51 2001 @@ -1,7 +1,10 @@ @@ -1338,7 +1337,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/config.guess gcc/config.guess +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: -diff -ruN --exclude=CVS gcc-2.95.3/config.sub gcc/config.sub --- gcc-2.95.3/config.sub Wed Aug 4 10:09:26 1999 +++ gcc/config.sub Sat Oct 13 18:29:48 2001 @@ -1,6 +1,10 @@ @@ -2414,7 +2412,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/config.sub gcc/config.sub +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: -diff -ruN --exclude=CVS gcc-2.95.3/configure.in gcc/configure.in --- gcc-2.95.3/configure.in Wed Jun 23 00:44:40 1999 +++ gcc/configure.in Thu Sep 27 19:52:22 2001 @@ -50,7 +50,7 @@ @@ -2426,41 +2423,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/configure.in gcc/configure.in # these libraries are built for the target environment, and are built after -diff -ruN --exclude=CVS gcc-2.95.3/gcc/Makefile.in gcc/gcc/Makefile.in ---- gcc-2.95.3/gcc/Makefile.in Thu Jan 25 15:02:58 2001 -+++ gcc/gcc/Makefile.in Thu Oct 4 17:12:22 2001 -@@ -367,7 +367,7 @@ - LIBGCC2_DEPS = - - # libgcc1-test target (must also be overridable for a target) --LIBGCC1_TEST = libgcc1-test -+LIBGCC1_TEST = #libgcc1-test - - # List of extra executables that should be compiled for this target machine - # that are used for compiling from source code to object code. -@@ -403,6 +403,12 @@ - # so don't override it here. - USE_COLLECT2 = collect2$(exeext) - -+### begin-GG-local: dynamic libraries -+# List of extra object files that should be compiled and linked with -+# collect2. -+EXTRA_COLLECT2_OBJS = -+### end-GG-local -+ - # List of extra C and assembler files to add to libgcc1.a. - # Assembler files should have names ending in `.asm'. - LIB1FUNCS_EXTRA = -@@ -1359,7 +1365,7 @@ - hard-reg-set.h $(BASIC_BLOCK_H) - sbitmap.o: sbitmap.c $(CONFIG_H) system.h $(RTL_H) flags.h $(BASIC_BLOCK_H) - --COLLECT2_OBJS = collect2.o tlink.o hash.o intl.o underscore.o version.o -+COLLECT2_OBJS = collect2.o tlink.o hash.o intl.o underscore.o version.o $(EXTRA_COLLECT2_OBJS) - collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS) - # Don't try modifying collect2 (aka ld) in place--it might be linking this. - -rm -f collect2$(exeext) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/amigacollect2.c gcc/gcc/amigacollect2.c --- gcc-2.95.3/gcc/amigacollect2.c Thu Jan 1 01:00:00 1970 +++ gcc/gcc/amigacollect2.c Thu Sep 27 19:35:53 2001 @@ -0,0 +1,344 @@ @@ -2808,2320 +2770,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/amigacollect2.c gcc/gcc/amigacollect2.c + argv[1]=output_file; + fork_execute("postlink", argv); +} -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-decl.c gcc/gcc/c-decl.c ---- gcc-2.95.3/gcc/c-decl.c Thu Jan 25 15:02:59 2001 -+++ gcc/gcc/c-decl.c Thu Sep 27 19:35:53 2001 -@@ -4227,8 +4227,10 @@ - record the given order of parms in `parm_order'. */ - - void --push_parm_decl (parm) -- tree parm; -+/* begin-GG-local: explicit register specification for parameters */ -+push_parm_decl (parm, asmspec) -+ tree parm, asmspec; -+/* end-GG-local */ - { - tree decl; - int old_immediate_size_expand = immediate_size_expand; -@@ -4253,6 +4255,78 @@ - } - #endif - -+ /* begin-GG-local: explicit register specification for parameters */ -+ if (asmspec) -+#ifdef TARGET_AMIGAOS -+ { -+ char *regname=TREE_STRING_POINTER(asmspec); -+ int regnum; -+ if ((regnum=decode_reg_name(regname))>=0) -+ { -+ tree type=TREE_TYPE(decl); -+ if (HARD_REGNO_MODE_OK(regnum, TYPE_MODE(type))) -+ { -+ tree t, attrs; -+ push_obstacks_nochange(); -+ end_temporary_allocation(); -+ /* Build tree for __attribute__ ((asm(regnum))). */ -+#if 0 -+ /* This doesn't work well because of a bug in -+ attribute_list_contained(), which passes list of arguments to -+ simple_cst_equal() instead of passing every argument -+ separately. */ -+ attrs=tree_cons(get_identifier("asm"), tree_cons(NULL_TREE, -+ build_int_2_wide(regnum, 0), NULL_TREE), NULL_TREE); -+#else -+ attrs=tree_cons(get_identifier("asm"), -+ build_int_2_wide(regnum, 0), NULL_TREE); -+#endif -+#if 0 -+ /* build_type_attribute_variant() would seem to be more -+ appropriate here. However, that function does not support -+ attributes for parameters properly. It modifies -+ TYPE_MAIN_VARIANT of a new type. As a result, comptypes() -+ thinks that types of parameters in prototype and definition -+ are different and issues error messages. See also comment -+ below. */ -+ type=build_type_attribute_variant(type, attrs); -+#else -+ /* First check whether such a type already exists - if yes, use -+ that one. This is very important, since otherwise -+ common_type() would think that it sees two different -+ types and would try to merge them - this could result in -+ warning messages. */ -+ for (t=TYPE_MAIN_VARIANT(type); t; t=TYPE_NEXT_VARIANT(t)) -+ if (comptypes(t, type)==1 -+ && attribute_list_equal(TYPE_ATTRIBUTES(t), attrs)) -+ break; -+ if (t) -+ type=t; -+ else -+ { -+ /* Create a new variant, with differing attributes. -+ (Hack! Type with differing attributes should no longer be -+ a variant of its main type. See comment above for -+ explanation why this was necessary). */ -+ type=build_type_copy(type); -+ TYPE_ATTRIBUTES(type)=attrs; -+ } -+#endif -+ TREE_TYPE(decl)=type; -+ pop_obstacks(); -+ } -+ else -+ error_with_decl(decl, -+ "register number for `%s' isn't suitable for the data type"); -+ } -+ else -+ error("invalid register name `%s'", regname); -+ } -+#else /* !TARGET_AMIGAOS */ -+ error("explicit register specification for parameters is not supported for this target"); -+#endif /* !TARGET_AMIGAOS */ -+ /* end-GG-local */ -+ - decl = pushdecl (decl); - - immediate_size_expand = old_immediate_size_expand; -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-parse.c gcc/gcc/c-parse.c ---- gcc-2.95.3/gcc/c-parse.c Tue Apr 27 00:35:53 1999 -+++ gcc/gcc/c-parse.c Thu Sep 27 19:56:19 2001 -@@ -1,69 +1,68 @@ - - /* A Bison parser, made from c-parse.y -- by GNU Bison version 1.25 -- */ -+ by GNU Bison version 1.28 */ - - #define YYBISON 1 /* Identify Bison output. */ - --#define IDENTIFIER 258 --#define TYPENAME 259 --#define SCSPEC 260 --#define TYPESPEC 261 --#define TYPE_QUAL 262 --#define CONSTANT 263 --#define STRING 264 --#define ELLIPSIS 265 --#define SIZEOF 266 --#define ENUM 267 --#define STRUCT 268 --#define UNION 269 --#define IF 270 --#define ELSE 271 --#define WHILE 272 --#define DO 273 --#define FOR 274 --#define SWITCH 275 --#define CASE 276 --#define DEFAULT 277 --#define BREAK 278 --#define CONTINUE 279 --#define RETURN 280 --#define GOTO 281 --#define ASM_KEYWORD 282 --#define TYPEOF 283 --#define ALIGNOF 284 --#define ATTRIBUTE 285 --#define EXTENSION 286 --#define LABEL 287 --#define REALPART 288 --#define IMAGPART 289 --#define ASSIGN 290 --#define OROR 291 --#define ANDAND 292 --#define EQCOMPARE 293 --#define ARITHCOMPARE 294 --#define LSHIFT 295 --#define RSHIFT 296 --#define UNARY 297 --#define PLUSPLUS 298 --#define MINUSMINUS 299 --#define HYPERUNARY 300 --#define POINTSAT 301 --#define INTERFACE 302 --#define IMPLEMENTATION 303 --#define END 304 --#define SELECTOR 305 --#define DEFS 306 --#define ENCODE 307 --#define CLASSNAME 308 --#define PUBLIC 309 --#define PRIVATE 310 --#define PROTECTED 311 --#define PROTOCOL 312 --#define OBJECTNAME 313 --#define CLASS 314 --#define ALIAS 315 --#define OBJC_STRING 316 -+#define IDENTIFIER 257 -+#define TYPENAME 258 -+#define SCSPEC 259 -+#define TYPESPEC 260 -+#define TYPE_QUAL 261 -+#define CONSTANT 262 -+#define STRING 263 -+#define ELLIPSIS 264 -+#define SIZEOF 265 -+#define ENUM 266 -+#define STRUCT 267 -+#define UNION 268 -+#define IF 269 -+#define ELSE 270 -+#define WHILE 271 -+#define DO 272 -+#define FOR 273 -+#define SWITCH 274 -+#define CASE 275 -+#define DEFAULT 276 -+#define BREAK 277 -+#define CONTINUE 278 -+#define RETURN 279 -+#define GOTO 280 -+#define ASM_KEYWORD 281 -+#define TYPEOF 282 -+#define ALIGNOF 283 -+#define ATTRIBUTE 284 -+#define EXTENSION 285 -+#define LABEL 286 -+#define REALPART 287 -+#define IMAGPART 288 -+#define ASSIGN 289 -+#define OROR 290 -+#define ANDAND 291 -+#define EQCOMPARE 292 -+#define ARITHCOMPARE 293 -+#define LSHIFT 294 -+#define RSHIFT 295 -+#define UNARY 296 -+#define PLUSPLUS 297 -+#define MINUSMINUS 298 -+#define HYPERUNARY 299 -+#define POINTSAT 300 -+#define INTERFACE 301 -+#define IMPLEMENTATION 302 -+#define END 303 -+#define SELECTOR 304 -+#define DEFS 305 -+#define ENCODE 306 -+#define CLASSNAME 307 -+#define PUBLIC 308 -+#define PRIVATE 309 -+#define PROTECTED 310 -+#define PROTOCOL 311 -+#define OBJECTNAME 312 -+#define CLASS 313 -+#define ALIAS 314 -+#define OBJC_STRING 315 - - #line 56 "c-parse.y" - -@@ -134,11 +133,11 @@ - - - --#define YYFINAL 692 -+#define YYFINAL 697 - #define YYFLAG -32768 - #define YYNTBASE 84 - --#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 241) -+#define YYTRANSLATE(x) ((unsigned)(x) <= 315 ? yytranslate[x] : 241) - - static const char yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -@@ -166,13 +165,13 @@ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, -- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -- 39, 40, 44, 45, 46, 47, 53, 54, 55, 56, -- 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, -- 70, 71, 72, 73, 74, 75 -+ 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, -+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, -+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, -+ 40, 44, 45, 46, 47, 53, 54, 55, 56, 57, -+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, -+ 71, 72, 73, 74, 75 - }; - - #if YYDEBUG != 0 -@@ -216,8 +215,8 @@ - 1164, 1166, 1167, 1174, 1178, 1184, 1187, 1191, 1192, 1194, - 1195, 1197, 1198, 1200, 1202, 1206, 1211, 1213, 1217, 1218, - 1221, 1224, 1225, 1230, 1233, 1234, 1236, 1238, 1242, 1244, -- 1248, 1253, 1258, 1263, 1268, 1273, 1274, 1277, 1279, 1282, -- 1284, 1288, 1290, 1294 -+ 1248, 1254, 1260, 1266, 1272, 1278, 1279, 1282, 1284, 1287, -+ 1289, 1293, 1295, 1299 - }; - - static const short yyrhs[] = { -1, -@@ -346,11 +345,11 @@ - 232, 76, 0, 0, 233, 77, 231, 230, 0, 1, - 76, 0, 0, 10, 0, 233, 0, 233, 81, 10, - 0, 234, 0, 233, 81, 234, 0, 125, 122, 166, -- 142, 0, 125, 122, 167, 142, 0, 125, 122, 186, -- 142, 0, 129, 122, 167, 142, 0, 129, 122, 186, -- 142, 0, 0, 236, 237, 0, 230, 0, 238, 76, -- 0, 3, 0, 238, 81, 3, 0, 97, 0, 239, -- 81, 97, 0, 31, 0 -+ 137, 142, 0, 125, 122, 167, 137, 142, 0, 125, -+ 122, 186, 137, 142, 0, 129, 122, 167, 137, 142, -+ 0, 129, 122, 186, 137, 142, 0, 0, 236, 237, -+ 0, 230, 0, 238, 76, 0, 3, 0, 238, 81, -+ 3, 0, 97, 0, 239, 81, 97, 0, 31, 0 - }; - - #endif -@@ -395,9 +394,9 @@ - 1830, 1835, 1839, 1843, 1854, 1861, 1868, 1875, 1886, 1892, - 1895, 1900, 1923, 1957, 1988, 2019, 2034, 2048, 2052, 2056, - 2059, 2064, 2066, 2069, 2071, 2075, 2080, 2083, 2089, 2094, -- 2099, 2101, 2110, 2111, 2117, 2119, 2129, 2131, 2135, 2138, -- 2144, 2154, 2163, 2172, 2182, 2196, 2201, 2206, 2208, 2217, -- 2220, 2225, 2228, 2232 -+ 2099, 2101, 2110, 2111, 2117, 2119, 2129, 2131, 2135, 2139, -+ 2145, 2156, 2166, 2176, 2187, 2203, 2208, 2213, 2215, 2224, -+ 2227, 2232, 2235, 2239 - }; - #endif - -@@ -525,7 +524,7 @@ - 1, 0, 6, 3, 5, 2, 3, 0, 1, 0, - 1, 0, 1, 1, 3, 4, 1, 3, 0, 2, - 2, 0, 4, 2, 0, 1, 1, 3, 1, 3, -- 4, 4, 4, 4, 4, 0, 2, 1, 2, 1, -+ 5, 5, 5, 5, 5, 0, 2, 1, 2, 1, - 3, 1, 3, 1 - }; - -@@ -570,642 +569,639 @@ - 29, 313, 104, 118, 118, 135, 0, 0, 164, 218, - 0, 266, 272, 326, 268, 170, 170, 281, 278, 170, - 0, 0, 0, 309, 310, 0, 80, 83, 294, 179, -- 0, 181, 229, 288, 379, 119, 170, 170, 170, 288, -- 119, 170, 170, 0, 388, 390, 401, 314, 111, 0, -+ 0, 181, 229, 288, 379, 119, 162, 162, 162, 288, -+ 119, 162, 162, 0, 388, 390, 401, 314, 111, 0, - 112, 0, 135, 133, 189, 187, 186, 168, 21, 0, - 25, 325, 0, 245, 249, 255, 170, 402, 0, 0, - 0, 325, 0, 0, 115, 326, 301, 311, 202, 86, - 0, 0, 199, 0, 201, 0, 257, 192, 198, 0, -- 0, 0, 0, 292, 0, 396, 0, 391, 392, 393, -- 292, 0, 394, 395, 383, 0, 0, 162, 134, 137, -+ 0, 0, 0, 292, 0, 396, 0, 170, 170, 170, -+ 292, 0, 170, 170, 383, 0, 0, 162, 134, 137, - 136, 0, 165, 273, 0, 170, 253, 312, 0, 318, - 117, 116, 305, 0, 319, 303, 326, 302, 0, 205, - 0, 0, 196, 61, 0, 191, 0, 204, 195, 81, -- 180, 227, 228, 223, 0, 226, 0, 109, 110, 0, -- 170, 0, 274, 403, 317, 0, 152, 0, 339, 323, -- 0, 0, 0, 0, 0, 0, 0, 0, 368, 360, -- 0, 0, 113, 118, 118, 332, 337, 0, 0, 329, -- 330, 333, 361, 331, 0, 0, 207, 0, 0, 193, -- 194, 224, 225, 188, 276, 170, 0, 0, 325, 370, -- 0, 0, 366, 350, 351, 352, 0, 0, 0, 369, -- 0, 170, 334, 124, 0, 125, 0, 0, 321, 326, -- 320, 343, 0, 126, 0, 200, 197, 275, 0, 0, -- 0, 371, 45, 0, 0, 0, 364, 353, 0, 358, -- 0, 367, 0, 122, 208, 0, 123, 211, 338, 325, -- 0, 0, 206, 322, 0, 324, 362, 344, 348, 0, -- 359, 0, 120, 0, 121, 0, 336, 327, 325, 0, -- 340, 325, 370, 325, 365, 372, 0, 209, 212, 328, -- 342, 325, 363, 0, 349, 0, 0, 373, 374, 354, -- 0, 0, 341, 345, 0, 372, 0, 0, 210, 213, -- 370, 0, 0, 355, 375, 0, 376, 0, 0, 346, -- 377, 0, 356, 325, 0, 0, 347, 357, 378, 0, -- 0, 0 -+ 180, 227, 228, 223, 0, 226, 0, 391, 392, 393, -+ 394, 395, 109, 110, 0, 170, 0, 274, 403, 317, -+ 0, 152, 0, 339, 323, 0, 0, 0, 0, 0, -+ 0, 0, 0, 368, 360, 0, 0, 113, 118, 118, -+ 332, 337, 0, 0, 329, 330, 333, 361, 331, 0, -+ 0, 207, 0, 0, 193, 194, 224, 225, 188, 276, -+ 170, 0, 0, 325, 370, 0, 0, 366, 350, 351, -+ 352, 0, 0, 0, 369, 0, 170, 334, 124, 0, -+ 125, 0, 0, 321, 326, 320, 343, 0, 126, 0, -+ 200, 197, 275, 0, 0, 0, 371, 45, 0, 0, -+ 0, 364, 353, 0, 358, 0, 367, 0, 122, 208, -+ 0, 123, 211, 338, 325, 0, 0, 206, 322, 0, -+ 324, 362, 344, 348, 0, 359, 0, 120, 0, 121, -+ 0, 336, 327, 325, 0, 340, 325, 370, 325, 365, -+ 372, 0, 209, 212, 328, 342, 325, 363, 0, 349, -+ 0, 0, 373, 374, 354, 0, 0, 341, 345, 0, -+ 372, 0, 0, 210, 213, 370, 0, 0, 355, 375, -+ 0, 376, 0, 0, 346, 377, 0, 356, 325, 0, -+ 0, 347, 357, 378, 0, 0, 0 - }; - --static const short yydefgoto[] = { 690, -+static const short yydefgoto[] = { 695, - 1, 2, 3, 17, 18, 19, 224, 378, 230, 381, - 112, 308, 454, 85, 144, 276, 87, 88, 89, 90, - 91, 396, 92, 261, 260, 258, 462, 259, 93, 145, -- 94, 211, 212, 213, 373, 441, 442, 20, 107, 543, -+ 94, 211, 212, 213, 373, 441, 442, 20, 107, 548, - 297, 57, 374, 424, 298, 23, 98, 186, 24, 129, - 117, 44, 113, 118, 430, 45, 377, 216, 217, 26, -- 195, 196, 197, 428, 482, 456, 457, 458, 559, 459, -- 502, 460, 461, 614, 634, 661, 617, 636, 662, 202, -+ 195, 196, 197, 428, 482, 456, 457, 458, 564, 459, -+ 502, 460, 461, 619, 639, 666, 622, 641, 667, 202, - 121, 407, 122, 27, 28, 29, 30, 238, 240, 245, - 137, 506, 334, 132, 133, 235, 382, 383, 243, 244, - 100, 184, 101, 103, 185, 443, 444, 494, 214, 337, -- 393, 394, 395, 371, 249, 372, 547, 548, 549, 569, -- 590, 312, 591, 447, 550, 551, 620, 568, 652, 643, -- 671, 684, 644, 552, 553, 642, 554, 581, 604, 657, -- 658, 659, 682, 281, 282, 299, 414, 300, 301, 302, -+ 393, 394, 395, 371, 249, 372, 552, 553, 554, 574, -+ 595, 312, 596, 447, 555, 556, 625, 573, 657, 648, -+ 676, 689, 649, 557, 558, 647, 559, 586, 609, 662, -+ 663, 664, 687, 281, 282, 299, 414, 300, 301, 302, - 205, 206, 303, 304, 439, 95 - }; - --static const short yypact[] = { 95, -- 110, 2206, 2206, 260,-32768,-32768,-32768,-32768, 40, 40, -- 40, 57, 59, 89,-32768,-32768,-32768,-32768,-32768, 42, -- 99, 2234, 79,-32768, 40,-32768, 87, 93, 108,-32768, -- 2206,-32768,-32768,-32768, 40, 40, 40, 2068, 2002, 125, ---32768,-32768, 42, 147,-32768, 40, 1355,-32768, 257,-32768, -- 42, 79,-32768, 40,-32768,-32768, 696,-32768,-32768,-32768, ---32768, 76,-32768, 124,-32768, 132,-32768,-32768,-32768,-32768, ---32768,-32768, 2068, 2068, 373,-32768,-32768,-32768, 2068,-32768, ---32768, 721,-32768,-32768, 2068, 149, 153,-32768, 2095, 2122, ---32768, 2335, 881, 231, 2068,-32768, 186, 319,-32768, 203, -- 578, 708, 627, 304,-32768, 257, 42,-32768, 194,-32768, -- 1430, 438, 40,-32768,-32768, 257, 177,-32768, 40, 276, -- 398, 417, 188, 1417, 696,-32768,-32768,-32768,-32768, 40, ---32768, 208, 778,-32768, 214,-32768, 468,-32768,-32768,-32768, ---32768,-32768, 223, 269, 288, 312,-32768, 315, 2068, 721, ---32768, 721,-32768, 2068, 2068, 362,-32768,-32768, 2068, 2068, -- 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, ---32768,-32768, 373, 373, 2068, 2068,-32768,-32768,-32768,-32768, -- 319, 1457, 40,-32768, 426, 760,-32768,-32768,-32768,-32768, ---32768,-32768,-32768,-32768, 50,-32768, 344,-32768, 417,-32768, ---32768, 385, 417, 419,-32768, 611, 1512,-32768, 349, 361, ---32768, 316, 70,-32768,-32768, 405, 40, 545, 323,-32768, -- 257, 257,-32768, 438, 40,-32768, 1539,-32768,-32768, 438, -- 40,-32768,-32768, 428, 370, 198, 953,-32768, 40,-32768, ---32768, 413, 383,-32768, 468,-32768,-32768,-32768, 376, 391, -- 1891,-32768, 2335, 402, 411, 2335, 2335, 2068, 443, 2068, -- 2068, 1564, 1645, 1859, 1078, 747, 838, 838, 356, 356, ---32768,-32768,-32768,-32768,-32768, 432, 153, 412, 463, 485, ---32768, 871,-32768, 434, 319,-32768, 1594,-32768, 760, 445, -- 708, 2149, 54, 448,-32768,-32768,-32768, 1036,-32768, 450, -- 197,-32768,-32768, 81,-32768,-32768,-32768, 39,-32768,-32768, ---32768, 846,-32768, 398,-32768,-32768, 398,-32768, 483,-32768, ---32768, 452,-32768,-32768,-32768,-32768,-32768,-32768, 461,-32768, -- 473, 2068, 373, 480, 383,-32768, 496,-32768,-32768,-32768, ---32768,-32768, 508, 2068, 2258, 1483,-32768,-32768, 426,-32768, ---32768,-32768, 426,-32768,-32768, 493,-32768,-32768, 85, 510, ---32768,-32768, 550, 497,-32768,-32768, 1006,-32768, 585, 288, ---32768,-32768,-32768, 512, 328,-32768, 1291, 39,-32768,-32768, -- 39, 513,-32768,-32768, 513, 40, 40, 2335,-32768, 40, -- 515, 373, 814, 496,-32768, 1111,-32768, 2351,-32768,-32768, -- 2068,-32768,-32768,-32768, 497, 40, 133, 140, 40,-32768, -- 40, 140, 40, 871,-32768,-32768,-32768,-32768,-32768, 257, ---32768, 42,-32768, 692,-32768,-32768, 2335,-32768,-32768, 1291, ---32768,-32768, 430,-32768,-32768,-32768, 40,-32768, 220, 433, -- 641, 518, 520, 894,-32768,-32768,-32768,-32768,-32768, 563, -- 373, 2068,-32768, 564, 2335, 525, 526,-32768,-32768, 326, -- 1231, 2068, 146, 500, 550,-32768, 1621,-32768,-32768,-32768, -- 423, 497,-32768,-32768,-32768, 237, 250, 112, 692,-32768, ---32768, 1111,-32768,-32768, 2068, 49,-32768,-32768, 373,-32768, ---32768,-32768,-32768, 541,-32768,-32768,-32768,-32768, 1757,-32768, -- 2245, 1111,-32768,-32768, 1171,-32768, 1346,-32768,-32768, 2351, ---32768, 504, 504,-32768, 1676,-32768, 537,-32768,-32768, 544, -- 1778, 2068,-32768,-32768,-32768, 1837, 588, 570,-32768,-32768, -- 572, 576, 2068, 598, 566, 596, 2015, 193, 633,-32768, -- 638, 601,-32768, 602, 2238,-32768, 664, 974, 66,-32768, ---32768,-32768,-32768,-32768, 1948, 2068,-32768, 604, 1346,-32768, ---32768,-32768,-32768,-32768,-32768, 1778, 2068, 624,-32768, 2068, -- 2068, 1701,-32768,-32768,-32768,-32768, 615, 2068, 616,-32768, -- 629, 40,-32768,-32768, 257,-32768, 42, 1054,-32768,-32768, ---32768,-32768, 2068,-32768, 2290,-32768,-32768,-32768, 618, 2068, -- 714,-32768, 687, 659, 662, 2068,-32768,-32768, 666,-32768, -- 2068,-32768, 271,-32768, 266, 284,-32768, 158,-32768,-32768, -- 1837, 663,-32768,-32768, 672,-32768,-32768,-32768,-32768, 2308, ---32768, 24,-32768, 438,-32768, 438,-32768,-32768,-32768, 674, ---32768,-32768, 2068,-32768,-32768, 744, 679,-32768,-32768,-32768, ---32768,-32768,-32768, 681,-32768, 700, 43, 684,-32768,-32768, -- 288, 288,-32768,-32768, 2068, 744, 691, 744,-32768,-32768, -- 2068, 702, 61,-32768,-32768, 705,-32768, 419, 706,-32768, -- 231, 176,-32768,-32768, 709, 419,-32768,-32768, 231, 787, -- 789,-32768 -+static const short yypact[] = { 67, -+ 77, 2230, 2230, 299,-32768,-32768,-32768,-32768, 62, 62, -+ 62, 48, 84, 94,-32768,-32768,-32768,-32768,-32768, 419, -+ 90, 760, 283,-32768, 62,-32768, 97, 108, 131,-32768, -+ 2230,-32768,-32768,-32768, 62, 62, 62, 2092, 2026, 115, -+-32768,-32768, 419, 2,-32768, 62, 1340,-32768, 371,-32768, -+ 419, 283,-32768, 62,-32768,-32768, 518,-32768,-32768,-32768, -+-32768, 96,-32768, 116,-32768, 124,-32768,-32768,-32768,-32768, -+-32768,-32768, 2092, 2092, 376,-32768,-32768,-32768, 2092,-32768, -+-32768, 1092,-32768,-32768, 2092, 149, 220,-32768, 2119, 2146, -+-32768, 2296, 850, 260, 2092,-32768, 231, 423,-32768, 237, -+ 1677, 690, 205, 112,-32768, 371, 419,-32768, 259,-32768, -+ 1454, 179, 62,-32768,-32768, 371, 118,-32768, 62, 1419, -+ 395, 421, 155, 1400, 518,-32768,-32768,-32768,-32768, 62, -+-32768, 268, 485,-32768, 274,-32768, 366,-32768,-32768,-32768, -+-32768,-32768, 249, 288, 309, 305,-32768, 318, 2092, 1092, -+-32768, 1092,-32768, 2092, 2092, 362,-32768,-32768, 2092, 2092, -+ 2092, 2092, 2092, 2092, 2092, 2092, 2092, 2092, 2092, 2092, -+-32768,-32768, 376, 376, 2092, 2092,-32768,-32768,-32768,-32768, -+ 423, 1481, 62,-32768, 425, 605,-32768,-32768,-32768,-32768, -+-32768,-32768,-32768,-32768, 65,-32768, 353,-32768, 421,-32768, -+-32768, 389, 421, 414,-32768, 918, 1536,-32768, 350, 365, -+-32768, 392, 46,-32768,-32768, 408, 62, 207, 142,-32768, -+ 371, 371,-32768, 179, 62,-32768, 1563,-32768,-32768, 179, -+ 62,-32768,-32768, 348, 369, 330, 1009,-32768, 62,-32768, -+-32768, 430, 367,-32768, 366,-32768,-32768,-32768, 372, 394, -+ 1915,-32768, 2296, 420, 424, 2296, 2296, 2092, 452, 2092, -+ 2092, 1588, 1346, 1668, 1424, 557, 1022, 1022, 188, 188, -+-32768,-32768,-32768,-32768,-32768, 444, 220, 385, 417, 199, -+-32768, 1163,-32768, 438, 423,-32768, 1618,-32768, 605, 450, -+ 690, 2173, 49, 453,-32768,-32768,-32768, 1438,-32768, 457, -+ 222,-32768,-32768, 81,-32768,-32768,-32768, 58,-32768,-32768, -+-32768, 1013,-32768, 395,-32768,-32768, 395,-32768, 470,-32768, -+-32768, 445,-32768,-32768,-32768,-32768,-32768,-32768, 458,-32768, -+ 461, 2092, 376, 462, 367,-32768, 503,-32768,-32768,-32768, -+-32768,-32768, 512, 2092, 2331, 1507,-32768,-32768, 425,-32768, -+-32768,-32768, 425,-32768,-32768, 471,-32768,-32768, 106, 465, -+-32768,-32768, 193, 224,-32768,-32768, 654,-32768, 552, 309, -+-32768,-32768,-32768, 480, 326,-32768, 847, 58,-32768,-32768, -+ 58, 477,-32768,-32768, 477, 62, 62, 2296,-32768, 62, -+ 481, 376, 702, 503,-32768, 1149,-32768, 2225,-32768,-32768, -+ 2092,-32768,-32768,-32768, 224, 62, 355, 412, 389,-32768, -+ 62, 412, 389, 1163,-32768,-32768,-32768,-32768,-32768, 371, -+-32768, 419,-32768, 673,-32768,-32768, 2296,-32768,-32768, 847, -+-32768,-32768, 827,-32768,-32768,-32768, 62,-32768, 223, 358, -+ 622, 483, 487, 792,-32768,-32768,-32768,-32768,-32768, 530, -+ 376, 2092,-32768, 532, 2296, 494, 493,-32768,-32768, 227, -+ 1269, 2092, 200, 212, 193,-32768, 1645, 62, 62, 62, -+ 381, 224, 62, 62,-32768, 229, 247, 412, 673,-32768, -+-32768, 1149,-32768,-32768, 2092, 68,-32768,-32768, 376,-32768, -+-32768,-32768,-32768, 497,-32768,-32768,-32768,-32768, 1781,-32768, -+ 2269, 1149,-32768,-32768, 1209,-32768, 1329,-32768,-32768, 2225, -+-32768, 443, 443,-32768, 1700,-32768, 498,-32768,-32768,-32768, -+-32768,-32768,-32768,-32768, 499, 1802, 2092,-32768,-32768,-32768, -+ 1861, 538, 523,-32768,-32768, 525, 528, 2092, 551, 537, -+ 539, 2039, 60, 613,-32768, 583, 545,-32768, 547, 937, -+-32768, 638, 953, 59,-32768,-32768,-32768,-32768,-32768, 1972, -+ 2092,-32768, 579, 1329,-32768,-32768,-32768,-32768,-32768,-32768, -+ 1802, 2092, 604,-32768, 2092, 2092, 1725,-32768,-32768,-32768, -+-32768, 592, 2092, 596,-32768, 615, 62,-32768,-32768, 371, -+-32768, 419, 1035,-32768,-32768,-32768,-32768, 2092,-32768, 2251, -+-32768,-32768,-32768, 599, 2092, 666,-32768, 1079, 611, 614, -+ 2092,-32768,-32768, 612,-32768, 2092,-32768, 276,-32768, 383, -+ 282,-32768, 710,-32768,-32768, 1861, 636,-32768,-32768, 642, -+-32768,-32768,-32768,-32768, 2318,-32768, 19,-32768, 179,-32768, -+ 179,-32768,-32768,-32768, 621,-32768,-32768, 2092,-32768,-32768, -+ 725, 661,-32768,-32768,-32768,-32768,-32768,-32768, 662,-32768, -+ 682, 76, 663,-32768,-32768, 309, 309,-32768,-32768, 2092, -+ 725, 670, 725,-32768,-32768, 2092, 667, 99,-32768,-32768, -+ 672,-32768, 414, 676,-32768, 260, 217,-32768,-32768, 677, -+ 414,-32768,-32768, 260, 749, 755,-32768 - }; - - static const short yypgoto[] = {-32768, ---32768,-32768,-32768, 103,-32768,-32768,-32768,-32768,-32768,-32768, ---32768,-32768, -24,-32768, -38, 516, -110, 477,-32768,-32768, -- -21,-32768, 255,-32768,-32768,-32768,-32768,-32768, 232,-32768, -- -194, -199, 591,-32768,-32768, 363,-32768, -3, -60, 252, -- 10, 757,-32768, 389, 19, -14, -90, 635, 27, -169, -- -390, -49, -114, -68,-32768,-32768,-32768, -171, 26, 68, ---32768, 522,-32768, 386,-32768, -347,-32768, 325,-32768, -405, ---32768,-32768, 406,-32768,-32768,-32768,-32768,-32768,-32768, -42, -- -77, 105, -9,-32768,-32768,-32768, -43,-32768,-32768,-32768, ---32768,-32768, 511, -37,-32768, 612, 538, 435, 625, 546, -- -35, -92, -72, -91, -105, 429,-32768,-32768, -185,-32768, ---32768,-32768, 486, 16,-32768, -125,-32768,-32768,-32768,-32768, -- -57, -361, -461, 456,-32768, 261,-32768,-32768,-32768,-32768, ---32768,-32768,-32768,-32768,-32768,-32768, 283,-32768, -503, 226, ---32768, 238,-32768, 621,-32768, -250,-32768,-32768,-32768, 543, -- -193,-32768,-32768,-32768,-32768, 13 -+-32768,-32768,-32768, 101,-32768,-32768,-32768,-32768,-32768,-32768, -+-32768,-32768, -24,-32768, -38, 466, -136, 428,-32768,-32768, -+ -4,-32768, 431,-32768,-32768,-32768,-32768,-32768, 184,-32768, -+ -182, -207, 549,-32768,-32768, 329,-32768, -3, -84, 208, -+ 6, 707,-32768, 354, 11, -1, -83, 587, 14, -138, -+ -396, -49, -93, -60,-32768,-32768,-32768, -108, 23, 51, -+-32768, 489,-32768, 356,-32768, -400,-32768, 273,-32768, -399, -+-32768,-32768, 323,-32768,-32768,-32768,-32768,-32768,-32768, -39, -+ -45, 50, -13,-32768,-32768,-32768, -41,-32768,-32768,-32768, -+-32768,-32768, 454, -14,-32768, 548, 467, 360, 553, 464, -+ -30, -72, -78, -87, -116, 357,-32768,-32768, -171,-32768, -+-32768,-32768, 410, -101,-32768, -114,-32768,-32768,-32768,-32768, -+ -97, -378, -489, 361,-32768, 176,-32768,-32768,-32768,-32768, -+-32768,-32768,-32768,-32768,-32768,-32768, 180,-32768, -587, 151, -+-32768, 147,-32768, 542,-32768, -238,-32768,-32768,-32768, 469, -+ -206,-32768,-32768,-32768,-32768, 9 - }; - - --#define YYLAST 2403 -+#define YYLAST 2383 - - - static const short yytable[] = { 86, -- 97, 123, 62, 64, 66, 225, 120, 52, 190, 293, -- 47, 21, 21, 131, 31, 31, 288, 49, 51, 250, -- 22, 22, 433, 218, 318, 135, 309, 25, 25, 476, -- 323, 351, 320, 104, 35, 36, 37, 201, 219, 370, -- 21, 124, 234, 31, 41, 46, 146, 54, 53, 22, -- 141, 139, 140, 319, 215, 509, 25, 142, 222, 324, -- 236, 646, 177, 147, 277, 99, 592, 330, 46, 14, -- -102, 14, 209, 178, 119, 280, 46, 194, 14, 310, -- 666, 131, 130, 55, 499, 56, 522, 225, 279, 59, -- 60, 42, 58, 199, -1, 59, 60, 203, 678, 647, -- 43, 561, 58, 58, 58, 32, 104, 601, 99, -2, -- 59, 60, 242, 58, 254, 38, 255, 39, 667, 288, -- 248, 58, 285, 183, 593, 290, 183, 189, 46, 361, -- 291, 119, 46, 67, 520, 526, 679, 278, 109, 654, -- 314, 119, 131, 284, 317, 237, 234, 40, 274, 275, -- 130, -102, 316, 597, 558, 215, 368, 134, 637, 99, -- 400, 369, 14, 475, 236, 401, 215, 676, 61, 14, -- 110, 111, 215, 349, 63, 48, 99, 650, 99, 353, -- 653, 277, 655, 102, 109, 142, 58, -162, 322, 65, -- 663, 466, 467, -162, 613, 59, 60, 58, 110, 111, -- 329, 5, 331, 7, 188, 136, 183, 445, 199, 9, -- 10, 11, 203, 138, 434, 435, 110, 111, 436, 343, -- 242, 511, 687, 105, 148, 13, 149, 106, 621, 340, -- 325, 25, 327, 149, -162, 468, 469, 470, -162, 177, -- 473, 474, 578, 119, 418, 131, 119, 119, 356, 237, -- 58, 685, 204, 220, 481, 491, 686, 221, 496, 41, -- 114, 179, 189, 99, 228, 487, 194, 384, 106, 384, -- 409, 413, 514, 366, -269, -269, 223, 367, 187, -19, -- -19, -19, -19, 52, 58, 231, 14, -19, -19, -19, -- 463, 239, 109, 363, 364, -162, 488, 375, 246, 280, -- 489, -162, 109, -19, 183, -162, 115, 25, 242, 481, -- 183, -162, 464, 518, 523, 116, 210, 221, 471, -105, -- -105, -105, -105, 54, 53, -105, 519, -105, -105, -105, -- 106, 5, 55, 7, 56, 446, 33, 34, 376, 9, -- 10, 11, -162, -105, 247, 465, -162, 633, 14, 565, -- 472, 221, -162, 408, 412, 13, -162, -19, 349, 353, -- 635, 507, 110, 111, 106, 349, 353, 438, 180, 248, -- 420, 422, 477, 546, 384, 59, 60, 181, 182, 200, -- 131, 226, 227, 451, 446, 452, 497, 251, 406, 411, -- 486, 252, 25, 429, 598, 104, 431, -105, 315, -82, -- 546, 423, 292, 253, 421, 168, 169, 170, 256, 257, -- 612, 109, 478, 262, 263, 264, 265, 266, 267, 268, -- 269, 270, 271, 272, 273, 41, 500, 70, 517, 198, -- 411, 306, 41, 114, 648, 131, 649, 307, 210, 25, -- 313, -325, -325, -325, -325, 119, 326, 46, 332, -325, -- -325, -325, 14, 336, 199, 203, 226, 227, 119, 14, -- 542, 199, 203, 333, 524, -325, 338, 485, 241, 198, -- 59, 60, 410, 58, 541, 110, 111, 341, 58, 115, -- 344, 405, 182, 681, 286, 287, 342, 542, 116, 406, -- 406, 689, 14, 142, 348, 546, 411, 411, 577, 41, -- 225, 541, 41, 403, -267, -267, 198, 347, 544, 307, -- 490, 555, 180, 579, 345, 346, 352, 545, 379, -101, -- 357, 181, 182, 362, 25, 365, 14, 392, 599, 14, -- 52, 602, 605, 178, 380, 669, 670, 616, 386, 609, -- 585, 587, 615, 286, 287, 397, 410, 41, 114, 404, -- 387, 198, 41, 403, 622, 405, 182, 390, 405, 182, -- 350, 625, 466, 467, 544, 151, 153, 555, 512, 513, -- 54, 53, 632, 545, 14, 399, 215, 618, 215, 14, -- 25, 5, 542, 7, 188, 402, 388, 417, 419, 9, -- 10, 11, 437, 432, 115, -304, 541, 495, 398, 404, -- -31, 503, 504, 116, 602, 13, 505, 14, 405, 182, -- 119, 294, 46, 295, 5, 6, 7, 8, 525, 563, -- 296, 564, 9, 10, 11, -32, 672, 180, 567, 41, -- 570, 427, 602, 198, 571, 573, 181, 182, 13, 580, -- 14, 210, 574, -114, -114, -114, -114, -114, -114, -114, -- 455, -114, -114, -114, -114, -114, 14, -114, -114, -114, -+ 97, 123, 62, 64, 66, 433, 47, 21, 21, 120, -+ 31, 31, 22, 22, 215, 131, 318, 49, 51, 320, -+ 52, 293, 323, 476, 25, 25, 225, 218, 190, 104, -+ 250, 35, 36, 37, 222, 53, 21, 124, 277, 31, -+ 309, 22, 46, 351, 54, 201, -102, 288, 135, 234, -+ 141, 146, 99, 25, 236, 310, 651, 177, 370, 597, -+ 659, 509, 59, 60, 280, 46, -1, 499, 139, 140, -+ 219, 119, 209, 46, 142, 58, -2, 194, 105, 130, -+ 147, 525, 106, 131, 606, 58, 58, 58, 681, 199, -+ 178, 14, 279, 203, 652, 99, 58, 14, 285, 59, -+ 60, 563, 104, 32, 58, 527, 38, 566, 225, 583, -+ 59, 60, 242, 671, 189, 215, 319, 598, 531, 254, -+ 183, 255, 324, 183, 361, 46, 215, -102, 119, 46, -+ 330, 67, 215, 59, 60, 642, 683, 278, 119, 248, -+ 290, 237, 39, 284, 131, 291, 99, 130, 274, 275, -+ 288, 672, 40, 234, 655, 277, 368, 658, 236, 660, -+ 316, 369, 349, 99, 602, 99, 48, 668, 353, 58, -+ 110, 111, 314, 102, 684, 475, 317, 134, 61, 210, -+ 58, 400, -325, -325, -325, -325, 401, 200, 322, 63, -+ -325, -325, -325, 618, 220, 41, 403, 136, 221, 692, -+ 226, 227, 142, 183, 199, 138, -325, 41, 203, 41, -+ 114, 198, 65, 198, 41, 403, 626, 315, 198, 343, -+ 242, 445, 14, 329, 148, 331, 41, 384, 25, 384, -+ 325, 228, 327, 58, 14, 106, 14, 168, 169, 170, -+ 119, 14, 404, 119, 119, 237, 340, 131, 356, 189, -+ 99, 405, 182, 14, 42, 418, 115, 286, 287, 514, -+ -101, 404, 507, 43, 463, 116, 194, 58, 177, 491, -+ 405, 182, 496, 410, 350, 511, 429, 434, 435, 431, -+ 149, 436, 405, 182, 451, 481, 452, 55, 280, 56, -+ 409, 413, 690, 363, 364, 446, 52, 691, 366, 488, -+ 149, 183, 367, 489, 25, 523, 179, 183, 242, 221, -+ 375, 53, 187, 468, 469, 470, 464, 204, 473, 474, -+ 54, 465, 471, 524, 246, 376, 472, 106, 487, 5, -+ 55, 7, 56, 5, 384, 7, 188, 9, 10, 11, -+ 481, 9, 10, 11, 446, 231, 497, 349, 353, 408, -+ 412, 239, 638, 13, 349, 353, 221, 13, 640, 518, -+ 519, 520, 106, 247, 521, 522, 241, 438, 59, 60, -+ 420, 422, 477, 41, 114, 33, 34, 528, 59, 60, -+ 251, 109, 131, 41, 551, 406, 411, 198, 423, 25, -+ 248, 104, 210, 486, 252, -105, -105, -105, -105, -82, -+ 14, -105, 421, -105, -105, -105, -269, -269, 478, 109, -+ 14, 292, -162, 466, 467, 109, 551, 570, -162, -105, -+ 115, 41, 70, 198, -267, -267, 500, 411, 517, 116, -+ 410, 653, 306, 654, 307, 490, 25, 131, 109, 405, -+ 182, 307, 119, 313, 46, 326, 14, 333, 14, 336, -+ 199, 203, 14, 226, 227, 119, 58, 199, 203, -162, -+ 547, 58, 603, -162, 529, 332, 180, 348, 42, 338, -+ 110, 111, 180, -105, 546, 181, 182, 43, 617, 110, -+ 111, 181, 182, 286, 287, 232, 406, 406, 5, 344, -+ 7, 96, 547, 411, 411, 341, 9, 10, 11, 342, -+ 686, 466, 467, 582, 549, 379, 546, 560, 694, 550, -+ 142, 551, 13, 512, 513, 15, 151, 153, 584, 347, -+ 352, 25, 126, 127, 128, 357, 225, 380, 362, 9, -+ 10, 11, 365, 604, 392, 386, 607, 610, 387, 390, -+ 402, 215, 621, 215, 614, 590, 592, 14, 52, 397, -+ 620, 674, 675, 399, 417, 178, 419, 432, 437, 627, -+ -304, 233, -261, 53, 495, 549, 630, -31, 560, 503, -+ 550, 504, 54, 505, 530, -32, 569, 637, 623, 253, -+ 568, 572, 25, 575, 256, 257, 576, 547, 578, 262, -+ 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, -+ 273, 546, 164, 165, 166, 167, 168, 169, 170, 607, -+ 127, 128, 119, 579, 46, 580, 9, 10, 11, 585, -+ 587, 588, 210, 589, -114, -114, -114, -114, -114, -114, -+ -114, 677, -114, -114, -114, -114, -114, 607, -114, -114, - -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -- -114, -114, 575, -114, -114, 582, 42, 583, 584, 588, -- -114, 596, 600, -114, 427, 43, -385, 611, -114, -114, -- -114, 608, 610, 624, -114, -114, 480, 127, 128, -114, -- 126, 127, 128, 9, 10, 11, 501, 9, 10, 11, -- 59, 60, 191, 192, 193, 455, 510, -114, -114, -114, -- -114, 143, -114, 68, 5, 14, 7, 96, 69, 70, -- 626, 71, 9, 10, 11, 628, 455, 629, 640, 521, -- 171, 172, 631, 173, 174, 175, 176, 641, 13, 72, -- 651, 15, 656, 73, 74, 660, 455, 664, 665, 455, -- 75, 455, 627, 76, 668, 127, 128, 674, 77, 78, -- 79, 9, 10, 11, 80, 81, 566, 677, 232, 82, -- 680, 5, 683, 7, 96, 688, 691, 572, 692, 9, -- 10, 11, 164, 165, 166, 167, 168, 169, 170, 83, -- 84, 603, -91, 311, 492, 13, 594, 360, 15, 125, -- 595, 479, 358, 455, 440, 483, -325, -325, -325, -325, -- -325, -325, -325, 289, -325, -325, -325, -325, -325, 560, -- -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -- -325, -325, -325, -325, -325, 391, -325, -325, 328, 5, -- 6, 7, 8, -325, 233, -261, -325, 9, 10, 11, -- 630, -325, -325, -325, 385, 508, 484, -325, -325, 335, -- 493, 294, -325, 13, 5, 6, 7, 8, 389, 448, -- 296, 638, 9, 10, 11, 166, 167, 168, 169, 170, -- -325, 673, -325, -325, 210, -325, -325, -325, 13, 498, -- 14, -325, -325, 639, -325, 675, 354, 0, -325, 416, -+ -114, -114, -114, 593, -114, -114, 601, 5, 6, 7, -+ 8, -114, 605, 415, -114, 9, 10, 11, 613, -114, -+ -114, -114, 615, 616, 629, -114, -114, 480, 127, 128, -+ -114, 13, 631, 14, 9, 10, 11, 633, 636, 634, -+ 345, 346, 59, 60, 191, 192, 193, 656, -114, -114, -+ -114, -114, 440, -114, -325, -325, -325, -325, -325, -325, -+ -325, 645, -325, -325, -325, -325, -325, 646, -325, -325, - -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -- -325, 0, -325, 0, -325, 0, -325, -325, 0, 0, -- 0, 0, 0, -325, 171, 172, -325, 173, 174, 175, -- 176, -325, -325, -325, 0, 0, -385, -325, -325, 0, -- 0, 0, -325, 232, 0, 0, 5, 0, 7, 96, -- 0, 0, 0, 0, 9, 10, 11, 0, 0, 0, -- -325, -300, -325, -325, 589, -325, -325, -325, 0, 0, -- 13, -325, -325, 15, -325, 0, 0, 0, -325, 0, -+ -325, -325, -325, 661, -325, -325, 109, 665, 669, -162, -+ 670, -325, 682, 673, -325, -162, 679, 685, 696, -325, -+ -325, -325, 688, 693, 697, -325, -325, 360, 608, 125, -+ -325, 311, 388, 5, 6, 7, 8, 599, 110, 111, -+ 492, 9, 10, 11, 398, 289, 479, 565, -325, 358, -+ -325, -325, 508, -325, 328, 483, -162, 13, 391, 14, -+ -162, 484, 210, 385, -325, -325, 389, 335, 493, -325, -+ -325, 643, -325, 448, 498, 644, -325, 427, -325, -325, -+ -325, -325, -325, -325, -325, -325, -325, -325, -325, 680, -+ -325, 678, -325, 0, -325, -325, 455, 354, 0, 41, -+ 114, -325, 0, 0, -325, 416, 50, 0, 0, -325, -+ -325, -325, 0, 0, 0, -325, -325, 425, 0, 68, -+ -325, 0, 0, 0, 69, 70, 14, 71, 0, 0, -+ 427, 0, 0, 0, 485, 0, 0, 0, -325, -300, -+ -325, -325, 0, -325, 0, 72, 115, 15, 0, 73, -+ 74, 0, 501, 0, 0, 116, 75, 0, 0, 76, -+ 0, 455, 510, 0, 77, 78, 79, 0, 0, 0, -+ 80, 81, 0, 171, 172, 82, 173, 174, 175, 176, -+ 0, 0, 455, 0, 0, 526, 0, 0, 294, 0, -+ 295, 5, 6, 7, 8, 83, 84, 296, 426, 9, -+ 10, 11, 455, 0, 0, 455, 0, 455, 0, 0, -+ 5, 6, 7, 8, 0, 13, 0, 14, 9, 10, -+ 11, 0, 0, 594, 0, -325, -325, 571, 0, 0, -+ -325, -325, 0, -325, 13, 0, 14, -325, 577, -325, - -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -- -325, 0, -325, 0, -325, 0, -325, -325, 0, 5, -- 6, 7, 8, -325, 0, 415, -325, 9, 10, 11, -- 0, -325, -325, -325, 0, 0, 0, -325, -325, 0, -- 0, 0, -325, 13, 0, 14, 0, 0, 0, 5, -- 6, 7, 8, 0, 0, 0, 0, 9, 10, 11, -- -325, 0, -325, -325, 619, -325, -335, -335, 0, 0, -- 0, -335, -335, 13, -335, 14, 0, 0, -335, 0, -- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -- -335, 0, -335, 0, -335, 0, -335, -335, 0, 0, -- 0, 0, 0, -335, 0, 0, -335, 0, 0, 0, -- 0, -335, -335, -335, 0, 0, 0, -335, -335, 0, -- 0, 449, -335, 450, 60, 0, 0, 0, 69, 70, -- 0, 71, 163, 164, 165, 166, 167, 168, 169, 170, -- -335, 0, -335, -335, 0, -335, 0, 0, 0, 72, -- 0, 15, 0, 73, 74, 0, 0, 0, 0, 0, -- 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 79, 0, 0, 0, 80, 81, 0, 0, 451, 82, -- 452, 449, 0, 450, 60, 0, 0, 0, 69, 70, -- 0, 71, 0, 0, 0, 0, 0, 0, -190, 83, -- 84, 0, 453, 0, 0, 0, 0, 0, 0, 72, -- 0, 15, 0, 73, 74, 0, 0, 0, 0, 0, -- 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 79, 0, 0, 0, 80, 81, 0, 0, 451, 82, -- 452, 449, 0, 68, 0, 0, 0, 0, 69, 70, -- 0, 71, 0, 0, 0, 0, 0, 0, -258, 83, -- 84, 0, 453, 0, 0, 0, 0, 0, 0, 72, -- 0, 15, 0, 73, 74, 0, -203, 0, 0, 0, -- 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 79, 0, 0, 0, 80, 81, 0, 0, -203, 82, -- -203, 425, 0, 68, 0, 0, 0, 0, 69, 70, -- 0, 71, 0, 0, 0, 0, 0, 0, 0, 83, -- 84, 0, 453, 0, 0, 0, 0, 0, 0, 72, -- 0, 15, 0, 73, 74, 0, 0, 0, 0, 0, -- 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 79, 0, 0, 0, 80, 81, 449, 0, 68, 82, -- 0, 0, 0, 69, 70, 108, 71, 0, -27, -27, -- -27, -27, 0, 0, 0, 0, -27, -27, -27, 83, -- 84, 0, 426, 0, 72, 0, 15, 0, 73, 74, -- 0, 109, -27, 0, -162, 75, 0, 0, 76, 0, -- -162, 0, 0, 77, 78, 79, 0, 0, 0, 80, -- 81, 0, 0, 0, 82, 0, 0, 0, 0, 0, -- 0, 0, 0, 110, 111, 0, 0, 229, 0, 0, -- -23, -23, -23, -23, 83, 84, 0, 453, -23, -23, -- -23, -162, 68, 0, 0, -162, -27, 69, 70, 0, -- 71, 0, 0, 109, -23, 0, -162, 0, 0, 0, -- 0, 0, -162, 0, 0, 0, 0, 0, 72, 68, -- 15, 0, 73, 74, 69, 70, 0, 71, 0, 75, -- 0, 0, 76, 0, 0, 110, 111, 77, 78, 207, -- 0, 0, 0, 80, 81, 72, 0, 15, 82, 73, -- 74, 0, 0, -162, 0, 0, 75, -162, -23, 76, -- 0, 0, 0, 0, 77, 78, 79, 0, 83, 84, -- 80, 81, 208, 0, 68, 82, 0, 0, 0, 69, -- 70, 0, 71, 159, 160, 161, 162, 163, 164, 165, -- 166, 167, 168, 169, 170, 83, 84, 0, 0, 283, -- 72, 68, 15, 0, 73, 74, 69, 70, 0, 71, -- 0, 75, 0, 0, 76, 0, 0, 0, 0, 77, -- 78, 79, 0, 0, 0, 80, 81, 72, 0, 15, -- 82, 73, 74, 0, 0, 0, 0, 0, 75, 0, -+ 0, -325, 0, -325, 0, -325, -325, 0, 0, 0, -+ 0, 600, -325, -385, 455, -325, 0, 0, 0, 0, -+ -325, -325, -325, 0, 0, 0, -325, -325, 0, 232, -+ 0, -325, 5, 591, 7, 96, 5, 6, 7, 8, -+ 9, 10, 11, 0, 9, 10, 11, 0, 0, -325, -+ 0, -325, -325, 0, -325, 624, 13, -335, -335, 15, -+ 13, 635, -335, -335, 0, -335, 0, 0, 0, -335, -+ 0, -335, -335, -335, -335, -335, -335, -335, -335, -335, -+ -335, -335, 0, -335, 0, -335, 0, -335, -335, 166, -+ 167, 168, 169, 170, -335, 0, 0, -335, 0, 0, -+ 0, 0, -335, -335, -335, 0, 0, 0, -335, -335, -+ 0, 0, 143, -335, 68, 5, 0, 7, 96, 69, -+ 70, 0, 71, 9, 10, 11, 0, 0, 0, 0, -+ 0, -335, 0, -335, -335, 0, -335, 0, 0, 13, -+ 72, 0, 15, 0, 73, 74, 0, 0, 0, 0, -+ 0, 75, 171, 172, 76, 173, 174, 175, 176, 77, -+ 78, 79, 0, 0, 0, 80, 81, 0, 0, 449, -+ 82, 450, 60, 0, 632, 0, 69, 70, 0, 71, -+ 0, 0, 0, 294, 0, 0, 5, 6, 7, 8, -+ 83, 84, 296, -91, 9, 10, 11, 72, 0, 15, -+ 0, 73, 74, 0, 0, 0, 0, 0, 75, 0, -+ 13, 76, 14, 0, 0, 0, 77, 78, 79, 0, -+ 0, 0, 80, 81, 0, 0, 451, 82, 452, 449, -+ 0, 450, 60, 0, 0, 0, 69, 70, 0, 71, -+ 0, 0, 0, 0, 0, 0, -190, 83, 84, 0, -+ 453, 0, 0, 0, 0, 0, 0, 72, -385, 15, -+ 0, 73, 74, 0, 0, 0, 0, 0, 75, 0, -+ 0, 76, 0, 0, 0, 0, 77, 78, 79, 0, -+ 0, 0, 80, 81, 0, 0, 451, 82, 452, 449, -+ 0, 68, 0, 0, 0, 0, 69, 70, 0, 71, -+ 0, 0, 0, 0, 0, 0, -258, 83, 84, 0, -+ 453, 0, 0, 0, 0, 0, 0, 72, 0, 15, -+ 0, 73, 74, 0, -203, 0, 0, 0, 75, 0, - 0, 76, 0, 0, 0, 0, 77, 78, 79, 0, -- 83, 84, 80, 81, 305, 0, 68, 82, 0, 0, -- 0, 69, 70, 0, 71, 160, 161, 162, 163, 164, -- 165, 166, 167, 168, 169, 170, 0, 83, 84, 0, -- 0, 321, 72, 68, 15, 0, 73, 74, 69, 70, -- 0, 71, 0, 75, 0, 0, 76, 0, 0, 0, -- 0, 77, 78, 79, 0, 0, 0, 80, 81, 72, -+ 0, 0, 80, 81, 0, 0, -203, 82, -203, 449, -+ 0, 68, 0, 0, 0, 0, 69, 70, 0, 71, -+ 108, 0, 0, -27, -27, -27, -27, 83, 84, 0, -+ 453, -27, -27, -27, 0, 0, 0, 72, 0, 15, -+ 0, 73, 74, 0, 0, 0, 109, -27, 75, -162, -+ 0, 76, 0, 0, 0, -162, 77, 78, 79, 0, -+ 0, 0, 80, 81, 0, 0, 0, 82, 161, 162, -+ 163, 164, 165, 166, 167, 168, 169, 170, 110, 111, -+ 229, 0, 0, -23, -23, -23, -23, 83, 84, 0, -+ 453, -23, -23, -23, 0, 0, -162, 0, 0, 223, -+ -162, -27, -19, -19, -19, -19, 109, -23, 0, -162, -+ -19, -19, -19, 0, 0, -162, 0, 0, 0, 0, -+ 0, 5, 6, 7, 8, 109, -19, 0, -162, 9, -+ 10, 11, 0, 0, -162, 0, 68, 0, 110, 111, -+ 0, 69, 70, 0, 71, 13, 0, 14, 163, 164, -+ 165, 166, 167, 168, 169, 170, -162, 0, 0, 0, -+ -162, -23, 72, 68, 15, 0, 73, 74, 69, 70, -+ 0, 71, 0, 75, 0, -162, 76, 0, 0, -162, -+ -19, 77, 78, 207, 0, 0, 0, 80, 81, 72, - 0, 15, 82, 73, 74, 0, 0, 0, 0, 0, - 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 515, 0, 83, 84, 80, 81, 355, 0, 68, 82, -- 0, 0, 0, 69, 70, 0, 71, 161, 162, 163, -- 164, 165, 166, 167, 168, 169, 170, 0, 0, 83, -- 84, 0, 0, 516, 72, 0, 15, 0, 73, 74, -- 606, 0, 0, 0, 0, 75, 0, 0, 76, 0, -+ 79, 0, 83, 84, 80, 81, 208, 0, 68, 82, -+ 0, 0, 0, 69, 70, 0, 71, 159, 160, 161, -+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 83, -+ 84, 0, 0, 283, 72, 68, 15, 0, 73, 74, -+ 69, 70, 0, 71, 0, 75, 0, 0, 76, 0, - 0, 0, 0, 77, 78, 79, 0, 0, 0, 80, -- 81, 0, 0, 0, 82, 154, 155, 156, 607, 157, -- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, -- 168, 169, 170, 0, 83, 84, 0, 0, 562, 450, -- 527, 6, 7, 8, 69, 70, 0, 71, 9, 10, -- 11, 528, 0, 529, 530, 531, 532, 533, 534, 535, -- 536, 537, 538, 539, 13, 72, 14, 15, 0, 73, -- 74, 0, 0, 0, 0, 0, 75, 0, 0, 76, -- 0, 0, 0, 0, 77, 78, 79, 14, 0, 0, -- 80, 81, 154, 155, 156, 82, 157, 158, 159, 160, -+ 81, 72, 0, 15, 82, 73, 74, 0, 0, 0, -+ 0, 0, 75, 0, 0, 76, 0, 0, 0, 0, -+ 77, 78, 79, 0, 83, 84, 80, 81, 305, 0, -+ 68, 82, 0, 0, 0, 69, 70, 0, 71, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -- 0, 0, 0, 540, 0, 83, 84, 0, 248, 450, -- 60, 0, 0, 0, 69, 70, 0, 71, 0, 0, -- 0, 528, 0, 529, 530, 531, 532, 533, 534, 535, -- 536, 537, 538, 539, 0, 72, 0, 15, 0, 73, -- 74, 0, 0, 0, 0, 0, 75, 0, 0, 76, -- 0, 0, 0, 0, 77, 78, 79, 0, 0, 0, -- 80, 81, 0, 68, 0, 82, 0, 0, 69, 70, -- 0, 71, 162, 163, 164, 165, 166, 167, 168, 169, -- 170, 0, 0, 540, 0, 83, 84, 0, 248, 72, -- 0, 15, 0, 73, 74, 0, 0, 0, 0, 0, -- 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -- 79, 0, 0, 0, 80, 81, 0, 0, 0, 82, -- 68, 5, 6, 7, 8, 69, 70, 0, 71, 9, -- 10, 11, 0, 0, 0, 0, 0, 0, 0, 83, -- 84, 0, 339, 0, 0, 13, 72, 14, 15, 0, -- 73, 74, 0, 0, 0, 0, 0, 75, 0, 0, -- 76, 0, 0, 0, 0, 77, 78, 79, 0, 0, -- 0, 80, 81, 0, 68, 5, 82, 7, 96, 69, -- 70, 0, 71, 9, 10, 11, 0, 68, 0, 0, -- 0, 0, 69, 70, 0, 71, 83, 84, 0, 13, -- 72, 0, 15, 0, 73, 74, 0, 0, 0, 0, -- 0, 75, 0, 72, 76, 15, 0, 73, 74, 77, -- 78, 79, 0, 0, 75, 80, 81, 76, 0, 0, -- 82, 0, 77, 78, 79, 0, 0, 0, 80, 81, -- 68, 0, 0, 82, 0, 69, 70, 0, 71, 0, -- 83, 84, 0, 0, 0, 0, 0, 0, 0, 0, -- 0, 576, 0, 83, 84, 0, 72, 68, 15, 0, -+ 0, 83, 84, 0, 0, 321, 72, 68, 15, 0, - 73, 74, 69, 70, 0, 71, 0, 75, 0, 0, - 76, 0, 0, 0, 0, 77, 78, 79, 0, 0, -- 0, 80, 81, 72, 68, 15, 82, 73, 74, 69, -- 70, 0, 71, 0, 75, 0, 0, 76, 0, 0, -- 0, 0, 77, 78, 79, 0, 83, 84, 80, 81, -- 72, 359, 15, 150, 73, 74, 69, 70, 0, 71, -+ 0, 80, 81, 72, 0, 15, 82, 73, 74, 0, -+ 5, 0, 7, 188, 75, 0, 0, 76, 9, 10, -+ 11, 0, 77, 78, 515, 0, 83, 84, 80, 81, -+ 355, 0, 68, 82, 13, 0, 14, 69, 70, 0, -+ 71, 162, 163, 164, 165, 166, 167, 168, 169, 170, -+ 0, 0, 0, 83, 84, 0, 180, 516, 72, 0, -+ 15, 0, 73, 74, 611, 181, 182, 0, 0, 75, -+ 0, 0, 76, 0, 0, 0, 0, 77, 78, 79, -+ 0, 0, 0, 80, 81, 0, 0, 0, 82, 154, -+ 155, 156, 612, 157, 158, 159, 160, 161, 162, 163, -+ 164, 165, 166, 167, 168, 169, 170, 0, 83, 84, -+ 0, 0, 567, 450, 532, 6, 7, 8, 69, 70, -+ 0, 71, 9, 10, 11, 533, 0, 534, 535, 536, -+ 537, 538, 539, 540, 541, 542, 543, 544, 13, 72, -+ 14, 15, 0, 73, 74, 0, 0, 0, 0, 0, -+ 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -+ 79, 14, 0, 0, 80, 81, 154, 155, 156, 82, -+ 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, -+ 167, 168, 169, 170, 0, 0, 0, 545, 0, 83, -+ 84, 0, 248, 450, 60, 0, 0, 0, 69, 70, -+ 0, 71, 0, 0, 0, 533, 0, 534, 535, 536, -+ 537, 538, 539, 540, 541, 542, 543, 544, 0, 72, -+ 0, 15, 0, 73, 74, 0, 0, 0, 0, 0, -+ 75, 0, 0, 76, 0, 0, 0, 0, 77, 78, -+ 79, 0, 0, 0, 80, 81, 0, 68, 0, 82, -+ 0, 0, 69, 70, 0, 71, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 545, 0, 83, -+ 84, 0, 248, 72, 0, 15, 0, 73, 74, 0, -+ 0, 0, 0, 0, 75, 0, 0, 76, 0, 0, -+ 0, 0, 77, 78, 79, 0, 0, 0, 80, 81, -+ 0, 0, 0, 82, 68, 5, 6, 7, 8, 69, -+ 70, 0, 71, 9, 10, 11, 0, 0, 0, 0, -+ 0, 0, 0, 83, 84, 0, 339, 0, 0, 13, -+ 72, 14, 15, 0, 73, 74, 0, 0, 0, 0, - 0, 75, 0, 0, 76, 0, 0, 0, 0, 77, -- 78, 79, 0, 83, 84, 80, 81, 72, 0, 15, -- 152, 73, 74, 0, 0, 0, 0, 0, 75, 0, -+ 78, 79, 0, 0, 0, 80, 81, 0, 68, 5, -+ 82, 7, 96, 69, 70, 0, 71, 9, 10, 11, -+ 0, 68, 0, 0, 0, 0, 69, 70, 0, 71, -+ 83, 84, 0, 13, 72, 0, 15, 0, 73, 74, -+ 0, 0, 0, 0, 0, 75, 0, 72, 76, 15, -+ 0, 73, 74, 77, 78, 79, 0, 0, 75, 80, -+ 81, 76, 0, 0, 82, 0, 77, 78, 79, 0, -+ 0, 0, 80, 81, 68, 0, 0, 82, 0, 69, -+ 70, 0, 71, 0, 83, 84, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 581, 0, 83, 84, 0, -+ 72, 68, 15, 0, 73, 74, 69, 70, 0, 71, -+ 0, 75, 0, 0, 76, 0, 0, 0, 0, 77, -+ 78, 79, 0, 0, 0, 80, 81, 72, 68, 15, -+ 82, 73, 74, 69, 70, 0, 71, 0, 75, 0, - 0, 76, 0, 0, 0, 0, 77, 78, 79, 0, -- 83, 84, 80, 81, 0, 0, 4, 82, -118, 5, -- 6, 7, 8, 0, 0, 0, 0, 9, 10, 11, -- 0, 0, 0, 0, 0, 0, 0, 83, 84, 0, -- 0, 0, 12, 13, 0, 14, 15, 5, 6, 7, -- 8, 5, 6, 7, 8, 9, 10, 11, 0, 9, -- 10, 11, 0, 0, 556, -118, 0, 0, 0, 0, -- 0, 13, 0, 14, -118, 13, 0, 14, 0, 0, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, -- 155, 156, 16, 157, 158, 159, 160, 161, 162, 163, -- 164, 165, 166, 167, 168, 169, 170, 158, 159, 160, -- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -- 50, 0, 0, 0, 586, 0, 0, 0, 0, 0, -- 0, 0, 0, 0, 154, 155, 156, 557, 157, 158, -- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, -- 169, 170, 154, 155, 156, 645, 157, 158, 159, 160, -+ 83, 84, 80, 81, 72, 359, 15, 150, 73, 74, -+ 69, 70, 0, 71, 0, 75, 0, 0, 76, 0, -+ 0, 0, 0, 77, 78, 79, 0, 83, 84, 80, -+ 81, 72, 0, 15, 152, 73, 74, 0, 0, 0, -+ 0, 0, 75, 0, 0, 76, 0, 0, 0, 0, -+ 77, 78, 79, 0, 83, 84, 80, 81, 0, 0, -+ 4, 82, -118, 5, 6, 7, 8, 0, 0, 0, -+ 0, 9, 10, 11, 0, 0, 0, 0, 0, 0, -+ 0, 83, 84, 0, 0, 0, 12, 13, 0, 14, -+ 15, 156, 0, 157, 158, 159, 160, 161, 162, 163, -+ 164, 165, 166, 167, 168, 169, 170, 0, 561, -118, -+ 0, 0, 0, 0, 0, 154, 155, 156, -118, 157, -+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, -+ 168, 169, 170, 154, 155, 156, 16, 157, 158, 159, -+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, -+ 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, -+ 154, 155, 156, 628, 157, 158, 159, 160, 161, 162, -+ 163, 164, 165, 166, 167, 168, 169, 170, 0, 0, -+ 0, 562, 154, 155, 156, 650, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, -- 155, 156, 623, 157, 158, 159, 160, 161, 162, 163, -- 164, 165, 166, 167, 168, 169, 170, 156, 0, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170 - }; - - static const short yycheck[] = { 38, -- 39, 51, 27, 28, 29, 120, 49, 22, 101, 204, -- 20, 2, 3, 57, 2, 3, 186, 21, 22, 145, -- 2, 3, 384, 115, 224, 63, 212, 2, 3, 420, -- 230, 282, 226, 43, 9, 10, 11, 106, 116, 1, -- 31, 51, 133, 31, 3, 20, 82, 22, 22, 31, -- 75, 73, 74, 225, 112, 461, 31, 79, 119, 231, -- 133, 38, 9, 85, 175, 39, 1, 239, 43, 30, -- 1, 30, 111, 95, 49, 181, 51, 102, 30, 10, -- 38, 125, 57, 5, 446, 7, 38, 202, 180, 3, -- 4, 50, 25, 103, 0, 3, 4, 107, 38, 76, -- 59, 507, 35, 36, 37, 3, 116, 569, 82, 0, -- 3, 4, 137, 46, 150, 59, 152, 59, 76, 289, -- 82, 54, 183, 98, 59, 76, 101, 101, 103, 76, -- 81, 106, 107, 31, 482, 497, 76, 176, 27, 643, -- 218, 116, 186, 182, 222, 133, 237, 59, 173, 174, -- 125, 82, 221, 559, 502, 213, 76, 82, 620, 133, -- 76, 81, 30, 414, 237, 81, 224, 671, 82, 30, -- 59, 60, 230, 279, 82, 77, 150, 639, 152, 285, -- 642, 292, 644, 59, 27, 207, 119, 30, 227, 82, -- 652, 59, 60, 36, 585, 3, 4, 130, 59, 60, -- 238, 4, 240, 6, 7, 82, 181, 393, 218, 12, -- 13, 14, 222, 82, 386, 387, 59, 60, 390, 258, -- 245, 76, 684, 77, 76, 28, 81, 81, 590, 251, -- 234, 206, 236, 81, 77, 407, 408, 409, 81, 9, -- 412, 413, 50, 218, 370, 289, 221, 222, 287, 237, -- 183, 76, 59, 77, 424, 441, 81, 81, 444, 3, -- 4, 76, 236, 237, 77, 437, 291, 325, 81, 327, -- 363, 364, 466, 77, 77, 78, 1, 81, 76, 4, -- 5, 6, 7, 298, 217, 78, 30, 12, 13, 14, -- 401, 78, 27, 297, 298, 30, 77, 312, 76, 405, -- 81, 36, 27, 28, 279, 30, 50, 282, 333, 479, -- 285, 36, 404, 77, 486, 59, 1, 81, 410, 4, -- 5, 6, 7, 298, 298, 10, 77, 12, 13, 14, -- 81, 4, 5, 6, 7, 393, 77, 78, 312, 12, -- 13, 14, 77, 28, 76, 406, 81, 77, 30, 521, -- 411, 81, 77, 363, 364, 28, 81, 82, 464, 465, -- 77, 36, 59, 60, 81, 471, 472, 392, 50, 82, -- 374, 375, 422, 499, 432, 3, 4, 59, 60, 76, -- 424, 59, 60, 58, 442, 60, 444, 76, 363, 364, -- 433, 77, 367, 378, 566, 405, 381, 82, 76, 38, -- 526, 375, 59, 149, 77, 50, 51, 52, 154, 155, -- 582, 27, 422, 159, 160, 161, 162, 163, 164, 165, -- 166, 167, 168, 169, 170, 3, 451, 9, 467, 7, -- 405, 83, 3, 4, 634, 479, 636, 77, 1, 414, -- 36, 4, 5, 6, 7, 420, 77, 422, 36, 12, -- 13, 14, 30, 78, 464, 465, 59, 60, 433, 30, -- 499, 471, 472, 81, 489, 28, 76, 38, 1, 7, -- 3, 4, 50, 406, 499, 59, 60, 76, 411, 50, -- 38, 59, 60, 678, 59, 60, 76, 526, 59, 464, -- 465, 686, 30, 515, 83, 621, 471, 472, 537, 3, -- 615, 526, 3, 4, 77, 78, 7, 76, 499, 77, -- 78, 499, 50, 538, 260, 261, 83, 499, 36, 82, -- 76, 59, 60, 76, 499, 76, 30, 32, 567, 30, -- 545, 570, 571, 555, 83, 661, 662, 587, 78, 578, -- 544, 545, 585, 59, 60, 38, 50, 3, 4, 50, -- 78, 7, 3, 4, 593, 59, 60, 78, 59, 60, -- 76, 600, 59, 60, 555, 89, 90, 555, 464, 465, -- 545, 545, 611, 555, 30, 83, 634, 587, 636, 30, -- 555, 4, 621, 6, 7, 76, 332, 3, 77, 12, -- 13, 14, 78, 81, 50, 78, 621, 78, 344, 50, -- 38, 38, 78, 59, 643, 28, 81, 30, 59, 60, -- 585, 1, 587, 3, 4, 5, 6, 7, 78, 83, -- 10, 78, 12, 13, 14, 38, 665, 50, 59, 3, -- 59, 377, 671, 7, 59, 38, 59, 60, 28, 7, -- 30, 1, 77, 3, 4, 5, 6, 7, 8, 9, -- 396, 11, 12, 13, 14, 15, 30, 17, 18, 19, -- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -- 30, 31, 77, 33, 34, 38, 50, 77, 77, 16, -- 40, 78, 59, 43, 430, 59, 76, 59, 48, 49, -- 50, 77, 77, 76, 54, 55, 5, 6, 7, 59, -- 5, 6, 7, 12, 13, 14, 452, 12, 13, 14, -- 3, 4, 5, 6, 7, 461, 462, 77, 78, 79, -- 80, 1, 82, 3, 4, 30, 6, 7, 8, 9, -- 17, 11, 12, 13, 14, 77, 482, 76, 76, 485, -- 54, 55, 77, 57, 58, 59, 60, 76, 28, 29, -- 77, 31, 9, 33, 34, 77, 502, 77, 59, 505, -- 40, 507, 76, 43, 81, 6, 7, 77, 48, 49, -- 50, 12, 13, 14, 54, 55, 522, 76, 1, 59, -- 76, 4, 77, 6, 7, 77, 0, 533, 0, 12, -- 13, 14, 46, 47, 48, 49, 50, 51, 52, 79, -- 80, 570, 82, 213, 442, 28, 555, 292, 31, 53, -- 556, 423, 291, 559, 1, 430, 3, 4, 5, 6, -- 7, 8, 9, 189, 11, 12, 13, 14, 15, 505, -- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -- 27, 28, 29, 30, 31, 335, 33, 34, 237, 4, -- 5, 6, 7, 40, 77, 78, 43, 12, 13, 14, -- 606, 48, 49, 50, 327, 460, 432, 54, 55, 245, -- 442, 1, 59, 28, 4, 5, 6, 7, 333, 394, -- 10, 621, 12, 13, 14, 48, 49, 50, 51, 52, -- 77, 666, 79, 80, 1, 82, 3, 4, 28, 444, -- 30, 8, 9, 621, 11, 668, 286, -1, 15, 367, -- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -- 27, -1, 29, -1, 31, -1, 33, 34, -1, -1, -- -1, -1, -1, 40, 54, 55, 43, 57, 58, 59, -- 60, 48, 49, 50, -1, -1, 76, 54, 55, -1, -- -1, -1, 59, 1, -1, -1, 4, -1, 6, 7, -- -1, -1, -1, -1, 12, 13, 14, -1, -1, -1, -- 77, 78, 79, 80, 1, 82, 3, 4, -1, -1, -- 28, 8, 9, 31, 11, -1, -1, -1, 15, -1, -- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -- 27, -1, 29, -1, 31, -1, 33, 34, -1, 4, -- 5, 6, 7, 40, -1, 10, 43, 12, 13, 14, -- -1, 48, 49, 50, -1, -1, -1, 54, 55, -1, -- -1, -1, 59, 28, -1, 30, -1, -1, -1, 4, -- 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, -- 77, -1, 79, 80, 1, 82, 3, 4, -1, -1, -- -1, 8, 9, 28, 11, 30, -1, -1, 15, -1, -- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -- 27, -1, 29, -1, 31, -1, 33, 34, -1, -1, -- -1, -1, -1, 40, -1, -1, 43, -1, -1, -1, -- -1, 48, 49, 50, -1, -1, -1, 54, 55, -1, -- -1, 1, 59, 3, 4, -1, -1, -1, 8, 9, -- -1, 11, 45, 46, 47, 48, 49, 50, 51, 52, -- 77, -1, 79, 80, -1, 82, -1, -1, -1, 29, -- -1, 31, -1, 33, 34, -1, -1, -1, -1, -1, -- 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -- 50, -1, -1, -1, 54, 55, -1, -1, 58, 59, -- 60, 1, -1, 3, 4, -1, -1, -1, 8, 9, -- -1, 11, -1, -1, -1, -1, -1, -1, 78, 79, -- 80, -1, 82, -1, -1, -1, -1, -1, -1, 29, -- -1, 31, -1, 33, 34, -1, -1, -1, -1, -1, -- 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -- 50, -1, -1, -1, 54, 55, -1, -1, 58, 59, -- 60, 1, -1, 3, -1, -1, -1, -1, 8, 9, -- -1, 11, -1, -1, -1, -1, -1, -1, 78, 79, -- 80, -1, 82, -1, -1, -1, -1, -1, -1, 29, -- -1, 31, -1, 33, 34, -1, 36, -1, -1, -1, -- 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -- 50, -1, -1, -1, 54, 55, -1, -1, 58, 59, -- 60, 1, -1, 3, -1, -1, -1, -1, 8, 9, -- -1, 11, -1, -1, -1, -1, -1, -1, -1, 79, -- 80, -1, 82, -1, -1, -1, -1, -1, -1, 29, -- -1, 31, -1, 33, 34, -1, -1, -1, -1, -1, -- 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -- 50, -1, -1, -1, 54, 55, 1, -1, 3, 59, -- -1, -1, -1, 8, 9, 1, 11, -1, 4, 5, -- 6, 7, -1, -1, -1, -1, 12, 13, 14, 79, -- 80, -1, 82, -1, 29, -1, 31, -1, 33, 34, -- -1, 27, 28, -1, 30, 40, -1, -1, 43, -1, -- 36, -1, -1, 48, 49, 50, -1, -1, -1, 54, -- 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, -- -1, -1, -1, 59, 60, -1, -1, 1, -1, -1, -- 4, 5, 6, 7, 79, 80, -1, 82, 12, 13, -- 14, 77, 3, -1, -1, 81, 82, 8, 9, -1, -- 11, -1, -1, 27, 28, -1, 30, -1, -1, -1, -- -1, -1, 36, -1, -1, -1, -1, -1, 29, 3, -- 31, -1, 33, 34, 8, 9, -1, 11, -1, 40, -- -1, -1, 43, -1, -1, 59, 60, 48, 49, 50, -- -1, -1, -1, 54, 55, 29, -1, 31, 59, 33, -- 34, -1, -1, 77, -1, -1, 40, 81, 82, 43, -- -1, -1, -1, -1, 48, 49, 50, -1, 79, 80, -- 54, 55, 83, -1, 3, 59, -1, -1, -1, 8, -- 9, -1, 11, 41, 42, 43, 44, 45, 46, 47, -- 48, 49, 50, 51, 52, 79, 80, -1, -1, 83, -- 29, 3, 31, -1, 33, 34, 8, 9, -1, 11, -- -1, 40, -1, -1, 43, -1, -1, -1, -1, 48, -- 49, 50, -1, -1, -1, 54, 55, 29, -1, 31, -- 59, 33, 34, -1, -1, -1, -1, -1, 40, -1, -+ 39, 51, 27, 28, 29, 384, 20, 2, 3, 49, -+ 2, 3, 2, 3, 112, 57, 224, 21, 22, 226, -+ 22, 204, 230, 420, 2, 3, 120, 115, 101, 43, -+ 145, 9, 10, 11, 119, 22, 31, 51, 175, 31, -+ 212, 31, 20, 282, 22, 106, 1, 186, 63, 133, -+ 75, 82, 39, 31, 133, 10, 38, 9, 1, 1, -+ 648, 461, 3, 4, 181, 43, 0, 446, 73, 74, -+ 116, 49, 111, 51, 79, 25, 0, 102, 77, 57, -+ 85, 482, 81, 125, 574, 35, 36, 37, 676, 103, -+ 95, 30, 180, 107, 76, 82, 46, 30, 183, 3, -+ 4, 502, 116, 3, 54, 38, 59, 507, 202, 50, -+ 3, 4, 137, 38, 101, 213, 225, 59, 497, 150, -+ 98, 152, 231, 101, 76, 103, 224, 82, 106, 107, -+ 239, 31, 230, 3, 4, 625, 38, 176, 116, 82, -+ 76, 133, 59, 182, 186, 81, 133, 125, 173, 174, -+ 289, 76, 59, 237, 644, 292, 76, 647, 237, 649, -+ 221, 81, 279, 150, 564, 152, 77, 657, 285, 119, -+ 59, 60, 218, 59, 76, 414, 222, 82, 82, 1, -+ 130, 76, 4, 5, 6, 7, 81, 76, 227, 82, -+ 12, 13, 14, 590, 77, 3, 4, 82, 81, 689, -+ 59, 60, 207, 181, 218, 82, 28, 3, 222, 3, -+ 4, 7, 82, 7, 3, 4, 595, 76, 7, 258, -+ 245, 393, 30, 238, 76, 240, 3, 325, 206, 327, -+ 234, 77, 236, 183, 30, 81, 30, 50, 51, 52, -+ 218, 30, 50, 221, 222, 237, 251, 289, 287, 236, -+ 237, 59, 60, 30, 50, 370, 50, 59, 60, 466, -+ 82, 50, 36, 59, 401, 59, 291, 217, 9, 441, -+ 59, 60, 444, 50, 76, 76, 378, 386, 387, 381, -+ 81, 390, 59, 60, 58, 424, 60, 5, 405, 7, -+ 363, 364, 76, 297, 298, 393, 298, 81, 77, 77, -+ 81, 279, 81, 81, 282, 77, 76, 285, 333, 81, -+ 312, 298, 76, 407, 408, 409, 404, 59, 412, 413, -+ 298, 406, 410, 77, 76, 312, 411, 81, 437, 4, -+ 5, 6, 7, 4, 432, 6, 7, 12, 13, 14, -+ 479, 12, 13, 14, 442, 78, 444, 464, 465, 363, -+ 364, 78, 77, 28, 471, 472, 81, 28, 77, 468, -+ 469, 470, 81, 76, 473, 474, 1, 392, 3, 4, -+ 374, 375, 422, 3, 4, 77, 78, 486, 3, 4, -+ 76, 27, 424, 3, 499, 363, 364, 7, 375, 367, -+ 82, 405, 1, 433, 77, 4, 5, 6, 7, 38, -+ 30, 10, 77, 12, 13, 14, 77, 78, 422, 27, -+ 30, 59, 30, 59, 60, 27, 531, 526, 36, 28, -+ 50, 3, 9, 7, 77, 78, 451, 405, 467, 59, -+ 50, 639, 83, 641, 77, 78, 414, 479, 27, 59, -+ 60, 77, 420, 36, 422, 77, 30, 81, 30, 78, -+ 464, 465, 30, 59, 60, 433, 406, 471, 472, 77, -+ 499, 411, 571, 81, 489, 36, 50, 83, 50, 76, -+ 59, 60, 50, 82, 499, 59, 60, 59, 587, 59, -+ 60, 59, 60, 59, 60, 1, 464, 465, 4, 38, -+ 6, 7, 531, 471, 472, 76, 12, 13, 14, 76, -+ 683, 59, 60, 542, 499, 36, 531, 499, 691, 499, -+ 515, 626, 28, 464, 465, 31, 89, 90, 543, 76, -+ 83, 499, 5, 6, 7, 76, 620, 83, 76, 12, -+ 13, 14, 76, 572, 32, 78, 575, 576, 78, 78, -+ 76, 639, 592, 641, 583, 549, 550, 30, 550, 38, -+ 590, 666, 667, 83, 3, 560, 77, 81, 78, 598, -+ 78, 77, 78, 550, 78, 560, 605, 38, 560, 38, -+ 560, 78, 550, 81, 78, 38, 78, 616, 592, 149, -+ 83, 59, 560, 59, 154, 155, 59, 626, 38, 159, -+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, -+ 170, 626, 46, 47, 48, 49, 50, 51, 52, 648, -+ 6, 7, 590, 77, 592, 77, 12, 13, 14, 7, -+ 38, 77, 1, 77, 3, 4, 5, 6, 7, 8, -+ 9, 670, 11, 12, 13, 14, 15, 676, 17, 18, -+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -+ 29, 30, 31, 16, 33, 34, 78, 4, 5, 6, -+ 7, 40, 59, 10, 43, 12, 13, 14, 77, 48, -+ 49, 50, 77, 59, 76, 54, 55, 5, 6, 7, -+ 59, 28, 17, 30, 12, 13, 14, 77, 77, 76, -+ 260, 261, 3, 4, 5, 6, 7, 77, 77, 78, -+ 79, 80, 1, 82, 3, 4, 5, 6, 7, 8, -+ 9, 76, 11, 12, 13, 14, 15, 76, 17, 18, -+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, -+ 29, 30, 31, 9, 33, 34, 27, 77, 77, 30, -+ 59, 40, 76, 81, 43, 36, 77, 76, 0, 48, -+ 49, 50, 77, 77, 0, 54, 55, 292, 575, 53, -+ 59, 213, 332, 4, 5, 6, 7, 560, 59, 60, -+ 442, 12, 13, 14, 344, 189, 423, 505, 77, 291, -+ 79, 80, 460, 82, 237, 430, 77, 28, 335, 30, -+ 81, 432, 1, 327, 3, 4, 333, 245, 442, 8, -+ 9, 626, 11, 394, 444, 626, 15, 377, 17, 18, -+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 673, -+ 29, 671, 31, -1, 33, 34, 396, 286, -1, 3, -+ 4, 40, -1, -1, 43, 367, 77, -1, -1, 48, -+ 49, 50, -1, -1, -1, 54, 55, 1, -1, 3, -+ 59, -1, -1, -1, 8, 9, 30, 11, -1, -1, -+ 430, -1, -1, -1, 38, -1, -1, -1, 77, 78, -+ 79, 80, -1, 82, -1, 29, 50, 31, -1, 33, -+ 34, -1, 452, -1, -1, 59, 40, -1, -1, 43, -+ -1, 461, 462, -1, 48, 49, 50, -1, -1, -1, -+ 54, 55, -1, 54, 55, 59, 57, 58, 59, 60, -+ -1, -1, 482, -1, -1, 485, -1, -1, 1, -1, -+ 3, 4, 5, 6, 7, 79, 80, 10, 82, 12, -+ 13, 14, 502, -1, -1, 505, -1, 507, -1, -1, -+ 4, 5, 6, 7, -1, 28, -1, 30, 12, 13, -+ 14, -1, -1, 1, -1, 3, 4, 527, -1, -1, -+ 8, 9, -1, 11, 28, -1, 30, 15, 538, 17, -+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, -+ -1, 29, -1, 31, -1, 33, 34, -1, -1, -1, -+ -1, 561, 40, 76, 564, 43, -1, -1, -1, -1, -+ 48, 49, 50, -1, -1, -1, 54, 55, -1, 1, -+ -1, 59, 4, 77, 6, 7, 4, 5, 6, 7, -+ 12, 13, 14, -1, 12, 13, 14, -1, -1, 77, -+ -1, 79, 80, -1, 82, 1, 28, 3, 4, 31, -+ 28, 611, 8, 9, -1, 11, -1, -1, -1, 15, -+ -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, -+ 26, 27, -1, 29, -1, 31, -1, 33, 34, 48, -+ 49, 50, 51, 52, 40, -1, -1, 43, -1, -1, -+ -1, -1, 48, 49, 50, -1, -1, -1, 54, 55, -+ -1, -1, 1, 59, 3, 4, -1, 6, 7, 8, -+ 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, -+ -1, 77, -1, 79, 80, -1, 82, -1, -1, 28, -+ 29, -1, 31, -1, 33, 34, -1, -1, -1, -1, -+ -1, 40, 54, 55, 43, 57, 58, 59, 60, 48, -+ 49, 50, -1, -1, -1, 54, 55, -1, -1, 1, -+ 59, 3, 4, -1, 76, -1, 8, 9, -1, 11, -+ -1, -1, -1, 1, -1, -1, 4, 5, 6, 7, -+ 79, 80, 10, 82, 12, 13, 14, 29, -1, 31, -+ -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, -+ 28, 43, 30, -1, -1, -1, 48, 49, 50, -1, -+ -1, -1, 54, 55, -1, -1, 58, 59, 60, 1, -+ -1, 3, 4, -1, -1, -1, 8, 9, -1, 11, -+ -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -+ 82, -1, -1, -1, -1, -1, -1, 29, 76, 31, -+ -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, -+ -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, -+ -1, -1, 54, 55, -1, -1, 58, 59, 60, 1, -+ -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -+ -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -+ 82, -1, -1, -1, -1, -1, -1, 29, -1, 31, -+ -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, -- 79, 80, 54, 55, 83, -1, 3, 59, -1, -1, -- -1, 8, 9, -1, 11, 42, 43, 44, 45, 46, -- 47, 48, 49, 50, 51, 52, -1, 79, 80, -1, -- -1, 83, 29, 3, 31, -1, 33, 34, 8, 9, -- -1, 11, -1, 40, -1, -1, 43, -1, -1, -1, -- -1, 48, 49, 50, -1, -1, -1, 54, 55, 29, -+ -1, -1, 54, 55, -1, -1, 58, 59, 60, 1, -+ -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -+ 1, -1, -1, 4, 5, 6, 7, 79, 80, -1, -+ 82, 12, 13, 14, -1, -1, -1, 29, -1, 31, -+ -1, 33, 34, -1, -1, -1, 27, 28, 40, 30, -+ -1, 43, -1, -1, -1, 36, 48, 49, 50, -1, -+ -1, -1, 54, 55, -1, -1, -1, 59, 43, 44, -+ 45, 46, 47, 48, 49, 50, 51, 52, 59, 60, -+ 1, -1, -1, 4, 5, 6, 7, 79, 80, -1, -+ 82, 12, 13, 14, -1, -1, 77, -1, -1, 1, -+ 81, 82, 4, 5, 6, 7, 27, 28, -1, 30, -+ 12, 13, 14, -1, -1, 36, -1, -1, -1, -1, -+ -1, 4, 5, 6, 7, 27, 28, -1, 30, 12, -+ 13, 14, -1, -1, 36, -1, 3, -1, 59, 60, -+ -1, 8, 9, -1, 11, 28, -1, 30, 45, 46, -+ 47, 48, 49, 50, 51, 52, 77, -1, -1, -1, -+ 81, 82, 29, 3, 31, -1, 33, 34, 8, 9, -+ -1, 11, -1, 40, -1, 77, 43, -1, -1, 81, -+ 82, 48, 49, 50, -1, -1, -1, 54, 55, 29, - -1, 31, 59, 33, 34, -1, -1, -1, -1, -1, - 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, - 50, -1, 79, 80, 54, 55, 83, -1, 3, 59, -- -1, -1, -1, 8, 9, -1, 11, 43, 44, 45, -- 46, 47, 48, 49, 50, 51, 52, -1, -1, 79, -- 80, -1, -1, 83, 29, -1, 31, -1, 33, 34, -- 10, -1, -1, -1, -1, 40, -1, -1, 43, -1, -+ -1, -1, -1, 8, 9, -1, 11, 41, 42, 43, -+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 79, -+ 80, -1, -1, 83, 29, 3, 31, -1, 33, 34, -+ 8, 9, -1, 11, -1, 40, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, -1, -1, 54, -- 55, -1, -1, -1, 59, 35, 36, 37, 38, 39, -- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -- 50, 51, 52, -1, 79, 80, -1, -1, 83, 3, -- 4, 5, 6, 7, 8, 9, -1, 11, 12, 13, -- 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, -- 24, 25, 26, 27, 28, 29, 30, 31, -1, 33, -- 34, -1, -1, -1, -1, -1, 40, -1, -1, 43, -- -1, -1, -1, -1, 48, 49, 50, 30, -1, -1, -- 54, 55, 35, 36, 37, 59, 39, 40, 41, 42, -+ 55, 29, -1, 31, 59, 33, 34, -1, -1, -1, -+ -1, -1, 40, -1, -1, 43, -1, -1, -1, -1, -+ 48, 49, 50, -1, 79, 80, 54, 55, 83, -1, -+ 3, 59, -1, -1, -1, 8, 9, -1, 11, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -- -1, -1, -1, 77, -1, 79, 80, -1, 82, 3, -- 4, -1, -1, -1, 8, 9, -1, 11, -1, -1, -- -1, 15, -1, 17, 18, 19, 20, 21, 22, 23, -- 24, 25, 26, 27, -1, 29, -1, 31, -1, 33, -- 34, -1, -1, -1, -1, -1, 40, -1, -1, 43, -- -1, -1, -1, -1, 48, 49, 50, -1, -1, -1, -- 54, 55, -1, 3, -1, 59, -1, -1, 8, 9, -- -1, 11, 44, 45, 46, 47, 48, 49, 50, 51, -- 52, -1, -1, 77, -1, 79, 80, -1, 82, 29, -- -1, 31, -1, 33, 34, -1, -1, -1, -1, -1, -- 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -- 50, -1, -1, -1, 54, 55, -1, -1, -1, 59, -- 3, 4, 5, 6, 7, 8, 9, -1, 11, 12, -- 13, 14, -1, -1, -1, -1, -1, -1, -1, 79, -- 80, -1, 82, -1, -1, 28, 29, 30, 31, -1, -- 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, -- 43, -1, -1, -1, -1, 48, 49, 50, -1, -1, -- -1, 54, 55, -1, 3, 4, 59, 6, 7, 8, -- 9, -1, 11, 12, 13, 14, -1, 3, -1, -1, -- -1, -1, 8, 9, -1, 11, 79, 80, -1, 28, -- 29, -1, 31, -1, 33, 34, -1, -1, -1, -1, -- -1, 40, -1, 29, 43, 31, -1, 33, 34, 48, -- 49, 50, -1, -1, 40, 54, 55, 43, -1, -1, -- 59, -1, 48, 49, 50, -1, -1, -1, 54, 55, -- 3, -1, -1, 59, -1, 8, 9, -1, 11, -1, -- 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, -- -1, 77, -1, 79, 80, -1, 29, 3, 31, -1, -+ -1, 79, 80, -1, -1, 83, 29, 3, 31, -1, - 33, 34, 8, 9, -1, 11, -1, 40, -1, -1, - 43, -1, -1, -1, -1, 48, 49, 50, -1, -1, -- -1, 54, 55, 29, 3, 31, 59, 33, 34, 8, -- 9, -1, 11, -1, 40, -1, -1, 43, -1, -1, -- -1, -1, 48, 49, 50, -1, 79, 80, 54, 55, -- 29, 3, 31, 59, 33, 34, 8, 9, -1, 11, -+ -1, 54, 55, 29, -1, 31, 59, 33, 34, -1, -+ 4, -1, 6, 7, 40, -1, -1, 43, 12, 13, -+ 14, -1, 48, 49, 50, -1, 79, 80, 54, 55, -+ 83, -1, 3, 59, 28, -1, 30, 8, 9, -1, -+ 11, 44, 45, 46, 47, 48, 49, 50, 51, 52, -+ -1, -1, -1, 79, 80, -1, 50, 83, 29, -1, -+ 31, -1, 33, 34, 10, 59, 60, -1, -1, 40, -+ -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -+ -1, -1, -1, 54, 55, -1, -1, -1, 59, 35, -+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -+ 46, 47, 48, 49, 50, 51, 52, -1, 79, 80, -+ -1, -1, 83, 3, 4, 5, 6, 7, 8, 9, -+ -1, 11, 12, 13, 14, 15, -1, 17, 18, 19, -+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -+ 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, -+ 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -+ 50, 30, -1, -1, 54, 55, 35, 36, 37, 59, -+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, -+ 49, 50, 51, 52, -1, -1, -1, 77, -1, 79, -+ 80, -1, 82, 3, 4, -1, -1, -1, 8, 9, -+ -1, 11, -1, -1, -1, 15, -1, 17, 18, 19, -+ 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, -+ -1, 31, -1, 33, 34, -1, -1, -1, -1, -1, -+ 40, -1, -1, 43, -1, -1, -1, -1, 48, 49, -+ 50, -1, -1, -1, 54, 55, -1, 3, -1, 59, -+ -1, -1, 8, 9, -1, 11, -1, -1, -1, -1, -+ -1, -1, -1, -1, -1, -1, -1, 77, -1, 79, -+ 80, -1, 82, 29, -1, 31, -1, 33, 34, -1, -+ -1, -1, -1, -1, 40, -1, -1, 43, -1, -1, -+ -1, -1, 48, 49, 50, -1, -1, -1, 54, 55, -+ -1, -1, -1, 59, 3, 4, 5, 6, 7, 8, -+ 9, -1, 11, 12, 13, 14, -1, -1, -1, -1, -+ -1, -1, -1, 79, 80, -1, 82, -1, -1, 28, -+ 29, 30, 31, -1, 33, 34, -1, -1, -1, -1, -+ -1, 40, -1, -1, 43, -1, -1, -1, -1, 48, -+ 49, 50, -1, -1, -1, 54, 55, -1, 3, 4, -+ 59, 6, 7, 8, 9, -1, 11, 12, 13, 14, -+ -1, 3, -1, -1, -1, -1, 8, 9, -1, 11, -+ 79, 80, -1, 28, 29, -1, 31, -1, 33, 34, -+ -1, -1, -1, -1, -1, 40, -1, 29, 43, 31, -+ -1, 33, 34, 48, 49, 50, -1, -1, 40, 54, -+ 55, 43, -1, -1, 59, -1, 48, 49, 50, -1, -+ -1, -1, 54, 55, 3, -1, -1, 59, -1, 8, -+ 9, -1, 11, -1, 79, 80, -1, -1, -1, -1, -+ -1, -1, -1, -1, -1, 77, -1, 79, 80, -1, -+ 29, 3, 31, -1, 33, 34, 8, 9, -1, 11, - -1, 40, -1, -1, 43, -1, -1, -1, -1, 48, -- 49, 50, -1, 79, 80, 54, 55, 29, -1, 31, -- 59, 33, 34, -1, -1, -1, -1, -1, 40, -1, -+ 49, 50, -1, -1, -1, 54, 55, 29, 3, 31, -+ 59, 33, 34, 8, 9, -1, 11, -1, 40, -1, - -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, -- 79, 80, 54, 55, -1, -1, 1, 59, 3, 4, -- 5, 6, 7, -1, -1, -1, -1, 12, 13, 14, -- -1, -1, -1, -1, -1, -1, -1, 79, 80, -1, -- -1, -1, 27, 28, -1, 30, 31, 4, 5, 6, -- 7, 4, 5, 6, 7, 12, 13, 14, -1, 12, -- 13, 14, -1, -1, 10, 50, -1, -1, -1, -1, -- -1, 28, -1, 30, 59, 28, -1, 30, -1, -1, -- -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -- 36, 37, 77, 39, 40, 41, 42, 43, 44, 45, -- 46, 47, 48, 49, 50, 51, 52, 40, 41, 42, -- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -- 77, -1, -1, -1, 77, -1, -1, -1, -1, -1, -- -1, -1, -1, -1, 35, 36, 37, 83, 39, 40, -- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -- 51, 52, 35, 36, 37, 38, 39, 40, 41, 42, -+ 79, 80, 54, 55, 29, 3, 31, 59, 33, 34, -+ 8, 9, -1, 11, -1, 40, -1, -1, 43, -1, -+ -1, -1, -1, 48, 49, 50, -1, 79, 80, 54, -+ 55, 29, -1, 31, 59, 33, 34, -1, -1, -1, -+ -1, -1, 40, -1, -1, 43, -1, -1, -1, -1, -+ 48, 49, 50, -1, 79, 80, 54, 55, -1, -1, -+ 1, 59, 3, 4, 5, 6, 7, -1, -1, -1, -+ -1, 12, 13, 14, -1, -1, -1, -1, -1, -1, -+ -1, 79, 80, -1, -1, -1, 27, 28, -1, 30, -+ 31, 37, -1, 39, 40, 41, 42, 43, 44, 45, -+ 46, 47, 48, 49, 50, 51, 52, -1, 10, 50, -+ -1, -1, -1, -1, -1, 35, 36, 37, 59, 39, -+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, -+ 50, 51, 52, 35, 36, 37, 77, 39, 40, 41, -+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -+ 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -+ 35, 36, 37, 83, 39, 40, 41, 42, 43, 44, -+ 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, -+ -1, 83, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -- -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, -- 36, 37, 83, 39, 40, 41, 42, 43, 44, 45, -- 46, 47, 48, 49, 50, 51, 52, 37, -1, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52 - }; - /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ - #line 3 "/usr/lib/bison.simple" -+/* This file comes from bison-1.28. */ - - /* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. -@@ -1222,46 +1218,66 @@ - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software -- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -+ Foundation, Inc., 59 Temple Place - Suite 330, -+ Boston, MA 02111-1307, USA. */ - - /* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - --#ifndef alloca -+/* This is the parser code that is written into each bison parser -+ when the %semantic_parser declaration is not specified in the grammar. -+ It was written by Richard Stallman by simplifying the hairy parser -+ used when %semantic_parser is specified. */ -+ -+#ifndef YYSTACK_USE_ALLOCA -+#ifdef alloca -+#define YYSTACK_USE_ALLOCA -+#else /* alloca not defined */ - #ifdef __GNUC__ -+#define YYSTACK_USE_ALLOCA - #define alloca __builtin_alloca - #else /* not GNU C. */ --#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) -+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -+#define YYSTACK_USE_ALLOCA - #include - #else /* not sparc */ --#if defined (MSDOS) && !defined (__TURBOC__) -+/* We think this test detects Watcom and Microsoft C. */ -+/* This used to test MSDOS, but that is a bad idea -+ since that symbol is in the user namespace. */ -+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -+#if 0 /* No need for malloc.h, which pollutes the namespace; -+ instead, just don't use alloca. */ - #include -+#endif - #else /* not MSDOS, or __TURBOC__ */ - #if defined(_AIX) --#include -+/* I don't know what this was needed for, but it pollutes the namespace. -+ So I turned it off. rms, 2 May 1997. */ -+/* #include */ - #pragma alloca --#else /* not MSDOS, __TURBOC__, or _AIX */ --#ifdef __hpux --#ifdef __cplusplus --extern "C" { --void *alloca (unsigned int); --}; --#else /* not __cplusplus */ --void *alloca (); --#endif /* not __cplusplus */ -+#define YYSTACK_USE_ALLOCA -+#else /* not MSDOS, or __TURBOC__, or _AIX */ -+#if 0 -+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, -+ and on HPUX 10. Eventually we can turn this on. */ -+#define YYSTACK_USE_ALLOCA -+#define alloca __builtin_alloca - #endif /* __hpux */ -+#endif - #endif /* not _AIX */ - #endif /* not MSDOS, or __TURBOC__ */ --#endif /* not sparc. */ --#endif /* not GNU C. */ --#endif /* alloca not defined. */ -+#endif /* not sparc */ -+#endif /* not GNU C */ -+#endif /* alloca not defined */ -+#endif /* YYSTACK_USE_ALLOCA not defined */ - --/* This is the parser code that is written into each bison parser -- when the %semantic_parser declaration is not specified in the grammar. -- It was written by Richard Stallman by simplifying the hairy parser -- used when %semantic_parser is specified. */ -+#ifdef YYSTACK_USE_ALLOCA -+#define YYSTACK_ALLOC alloca -+#else -+#define YYSTACK_ALLOC malloc -+#endif - - /* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action -@@ -1271,8 +1287,8 @@ - #define yyclearin (yychar = YYEMPTY) - #define YYEMPTY -2 - #define YYEOF 0 --#define YYACCEPT return(0) --#define YYABORT return(1) -+#define YYACCEPT goto yyacceptlab -+#define YYABORT goto yyabortlab - #define YYERROR goto yyerrlab1 - /* Like YYERROR except do call yyerror. - This remains here temporarily to ease the -@@ -1353,12 +1369,12 @@ - #ifndef YYMAXDEPTH - #define YYMAXDEPTH 10000 - #endif -- --/* Prevent warning if -Wstrict-prototypes. */ --#ifdef __GNUC__ --int yyparse (void); --#endif - -+/* Define __yy_memcpy. Note that the size argument -+ should be passed with type unsigned int, because that is what the non-GCC -+ definitions require. With GCC, __builtin_memcpy takes an arg -+ of type size_t, but it can handle unsigned int. */ -+ - #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ - #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) - #else /* not GNU C or C++ */ -@@ -1370,7 +1386,7 @@ - __yy_memcpy (to, from, count) - char *to; - char *from; -- int count; -+ unsigned int count; - { - register char *f = from; - register char *t = to; -@@ -1385,10 +1401,10 @@ - /* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ - static void --__yy_memcpy (char *to, char *from, int count) -+__yy_memcpy (char *to, char *from, unsigned int count) - { -- register char *f = from; - register char *t = to; -+ register char *f = from; - register int i = count; - - while (i-- > 0) -@@ -1398,7 +1414,7 @@ - #endif - #endif - --#line 196 "/usr/lib/bison.simple" -+#line 217 "/usr/lib/bison.simple" - - /* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. -@@ -1419,6 +1435,15 @@ - #define YYPARSE_PARAM_DECL - #endif /* not YYPARSE_PARAM */ - -+/* Prevent warning if -Wstrict-prototypes. */ -+#ifdef __GNUC__ -+#ifdef YYPARSE_PARAM -+int yyparse (void *); -+#else -+int yyparse (void); -+#endif -+#endif -+ - int - yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -@@ -1447,6 +1472,7 @@ - #endif - - int yystacksize = YYINITDEPTH; -+ int yyfree_stacks = 0; - - #ifdef YYPURE - int yychar; -@@ -1531,18 +1557,32 @@ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); -+ if (yyfree_stacks) -+ { -+ free (yyss); -+ free (yyvs); -+#ifdef YYLSP_NEEDED -+ free (yyls); -+#endif -+ } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -- yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); -- __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); -- yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); -- __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); -+#ifndef YYSTACK_USE_ALLOCA -+ yyfree_stacks = 1; -+#endif -+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); -+ __yy_memcpy ((char *)yyss, (char *)yyss1, -+ size * (unsigned int) sizeof (*yyssp)); -+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); -+ __yy_memcpy ((char *)yyvs, (char *)yyvs1, -+ size * (unsigned int) sizeof (*yyvsp)); - #ifdef YYLSP_NEEDED -- yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); -- __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); -+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); -+ __yy_memcpy ((char *)yyls, (char *)yyls1, -+ size * (unsigned int) sizeof (*yylsp)); - #endif - #endif /* no yyoverflow */ - -@@ -3640,82 +3680,88 @@ - { yyval.ttype = get_parm_info (0); ; - break;} - case 389: --#line 2137 "c-parse.y" --{ push_parm_decl (yyvsp[0].ttype); ; -+#line 2138 "c-parse.y" -+{ push_parm_decl (TREE_PURPOSE(yyvsp[0].ttype), TREE_VALUE(yyvsp[0].ttype)); ; - break;} - case 390: --#line 2139 "c-parse.y" --{ push_parm_decl (yyvsp[0].ttype); ; -+#line 2140 "c-parse.y" -+{ push_parm_decl (TREE_PURPOSE(yyvsp[0].ttype), TREE_VALUE(yyvsp[0].ttype)); ; - break;} - case 391: --#line 2146 "c-parse.y" --{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, -- yyvsp[-1].ttype), -- build_tree_list (prefix_attributes, -- yyvsp[0].ttype)); -+#line 2147 "c-parse.y" -+{ yyval.ttype = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ yyvsp[-2].ttype), -+ build_tree_list (prefix_attributes, -+ yyvsp[0].ttype)), yyvsp[-1].ttype); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -- resume_momentary (yyvsp[-2].itype); ; -+ resume_momentary (yyvsp[-3].itype); ; - break;} - case 392: --#line 2155 "c-parse.y" --{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, -- yyvsp[-1].ttype), -- build_tree_list (prefix_attributes, -- yyvsp[0].ttype)); -+#line 2157 "c-parse.y" -+{ yyval.ttype = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ yyvsp[-2].ttype), -+ build_tree_list (prefix_attributes, -+ yyvsp[0].ttype)), yyvsp[-1].ttype); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -- resume_momentary (yyvsp[-2].itype); ; -+ resume_momentary (yyvsp[-3].itype); ; - break;} - case 393: --#line 2164 "c-parse.y" --{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, -- yyvsp[-1].ttype), -- build_tree_list (prefix_attributes, -- yyvsp[0].ttype)); -+#line 2167 "c-parse.y" -+{ yyval.ttype = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ yyvsp[-2].ttype), -+ build_tree_list (prefix_attributes, -+ yyvsp[0].ttype)), yyvsp[-1].ttype); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -- resume_momentary (yyvsp[-2].itype); ; -+ resume_momentary (yyvsp[-3].itype); ; - break;} - case 394: --#line 2173 "c-parse.y" --{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, -- yyvsp[-1].ttype), -- build_tree_list (prefix_attributes, -- yyvsp[0].ttype)); -+#line 2177 "c-parse.y" -+{ yyval.ttype = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ yyvsp[-2].ttype), -+ build_tree_list (prefix_attributes, -+ yyvsp[0].ttype)), yyvsp[-1].ttype); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -- resume_momentary (yyvsp[-2].itype); ; -+ resume_momentary (yyvsp[-3].itype); ; - break;} - case 395: --#line 2183 "c-parse.y" --{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, -- yyvsp[-1].ttype), -- build_tree_list (prefix_attributes, -- yyvsp[0].ttype)); -+#line 2188 "c-parse.y" -+{ yyval.ttype = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ yyvsp[-2].ttype), -+ build_tree_list (prefix_attributes, -+ yyvsp[0].ttype)), yyvsp[-1].ttype); -+/* end-GG-local */ - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -- resume_momentary (yyvsp[-2].itype); ; -+ resume_momentary (yyvsp[-3].itype); ; - break;} - case 396: --#line 2197 "c-parse.y" -+#line 2204 "c-parse.y" - { pushlevel (0); - clear_parm_order (); - declare_parm_level (1); ; - break;} - case 397: --#line 2201 "c-parse.y" -+#line 2208 "c-parse.y" - { yyval.ttype = yyvsp[0].ttype; - parmlist_tags_warning (); - poplevel (0, 0, 0); ; - break;} - case 399: --#line 2209 "c-parse.y" -+#line 2216 "c-parse.y" - { tree t; - for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == NULL_TREE) -@@ -3723,29 +3769,29 @@ - yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; - break;} - case 400: --#line 2219 "c-parse.y" -+#line 2226 "c-parse.y" - { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} - case 401: --#line 2221 "c-parse.y" -+#line 2228 "c-parse.y" - { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} - case 402: --#line 2227 "c-parse.y" -+#line 2234 "c-parse.y" - { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; - break;} - case 403: --#line 2229 "c-parse.y" -+#line 2236 "c-parse.y" - { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; - break;} - case 404: --#line 2234 "c-parse.y" -+#line 2241 "c-parse.y" - { yyval.itype = pedantic; - pedantic = 0; ; - break;} - } - /* the action file gets copied in in place of this dollarsign */ --#line 498 "/usr/lib/bison.simple" -+#line 543 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -@@ -3940,6 +3986,30 @@ - - yystate = yyn; - goto yynewstate; -+ -+ yyacceptlab: -+ /* YYACCEPT comes here. */ -+ if (yyfree_stacks) -+ { -+ free (yyss); -+ free (yyvs); -+#ifdef YYLSP_NEEDED -+ free (yyls); -+#endif -+ } -+ return 0; -+ -+ yyabortlab: -+ /* YYABORT comes here. */ -+ if (yyfree_stacks) -+ { -+ free (yyss); -+ free (yyvs); -+#ifdef YYLSP_NEEDED -+ free (yyls); -+#endif -+ } -+ return 1; - } --#line 2238 "c-parse.y" -+#line 2245 "c-parse.y" - -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-parse.h gcc/gcc/c-parse.h ---- gcc-2.95.3/gcc/c-parse.h Fri Mar 16 15:13:48 2001 -+++ gcc/gcc/c-parse.h Thu Sep 27 19:56:19 2001 -@@ -1,64 +1,64 @@ - typedef union {long itype; tree ttype; enum tree_code code; - char *filename; int lineno; int ends_in_label; } YYSTYPE; --#define IDENTIFIER 258 --#define TYPENAME 259 --#define SCSPEC 260 --#define TYPESPEC 261 --#define TYPE_QUAL 262 --#define CONSTANT 263 --#define STRING 264 --#define ELLIPSIS 265 --#define SIZEOF 266 --#define ENUM 267 --#define STRUCT 268 --#define UNION 269 --#define IF 270 --#define ELSE 271 --#define WHILE 272 --#define DO 273 --#define FOR 274 --#define SWITCH 275 --#define CASE 276 --#define DEFAULT 277 --#define BREAK 278 --#define CONTINUE 279 --#define RETURN 280 --#define GOTO 281 --#define ASM_KEYWORD 282 --#define TYPEOF 283 --#define ALIGNOF 284 --#define ATTRIBUTE 285 --#define EXTENSION 286 --#define LABEL 287 --#define REALPART 288 --#define IMAGPART 289 --#define ASSIGN 290 --#define OROR 291 --#define ANDAND 292 --#define EQCOMPARE 293 --#define ARITHCOMPARE 294 --#define LSHIFT 295 --#define RSHIFT 296 --#define UNARY 297 --#define PLUSPLUS 298 --#define MINUSMINUS 299 --#define HYPERUNARY 300 --#define POINTSAT 301 --#define INTERFACE 302 --#define IMPLEMENTATION 303 --#define END 304 --#define SELECTOR 305 --#define DEFS 306 --#define ENCODE 307 --#define CLASSNAME 308 --#define PUBLIC 309 --#define PRIVATE 310 --#define PROTECTED 311 --#define PROTOCOL 312 --#define OBJECTNAME 313 --#define CLASS 314 --#define ALIAS 315 --#define OBJC_STRING 316 -+#define IDENTIFIER 257 -+#define TYPENAME 258 -+#define SCSPEC 259 -+#define TYPESPEC 260 -+#define TYPE_QUAL 261 -+#define CONSTANT 262 -+#define STRING 263 -+#define ELLIPSIS 264 -+#define SIZEOF 265 -+#define ENUM 266 -+#define STRUCT 267 -+#define UNION 268 -+#define IF 269 -+#define ELSE 270 -+#define WHILE 271 -+#define DO 272 -+#define FOR 273 -+#define SWITCH 274 -+#define CASE 275 -+#define DEFAULT 276 -+#define BREAK 277 -+#define CONTINUE 278 -+#define RETURN 279 -+#define GOTO 280 -+#define ASM_KEYWORD 281 -+#define TYPEOF 282 -+#define ALIGNOF 283 -+#define ATTRIBUTE 284 -+#define EXTENSION 285 -+#define LABEL 286 -+#define REALPART 287 -+#define IMAGPART 288 -+#define ASSIGN 289 -+#define OROR 290 -+#define ANDAND 291 -+#define EQCOMPARE 292 -+#define ARITHCOMPARE 293 -+#define LSHIFT 294 -+#define RSHIFT 295 -+#define UNARY 296 -+#define PLUSPLUS 297 -+#define MINUSMINUS 298 -+#define HYPERUNARY 299 -+#define POINTSAT 300 -+#define INTERFACE 301 -+#define IMPLEMENTATION 302 -+#define END 303 -+#define SELECTOR 304 -+#define DEFS 305 -+#define ENCODE 306 -+#define CLASSNAME 307 -+#define PUBLIC 308 -+#define PRIVATE 309 -+#define PROTECTED 310 -+#define PROTOCOL 311 -+#define OBJECTNAME 312 -+#define CLASS 313 -+#define ALIAS 314 -+#define OBJC_STRING 315 - - - extern YYSTYPE yylval; -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-parse.in gcc/gcc/c-parse.in ---- gcc-2.95.3/gcc/c-parse.in Tue Apr 27 00:35:50 1999 -+++ gcc/gcc/c-parse.in Thu Sep 27 19:35:53 2001 -@@ -2329,56 +2329,63 @@ - - parms: - parm -- { push_parm_decl ($1); } -+/* begin-GG-local: explicit register specification for parameters */ -+ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } - | parms ',' parm -- { push_parm_decl ($3); } -+ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } - ; - - /* A single parameter declaration or parameter type name, - as found in a parmlist. */ - parm: -- typed_declspecs setspecs parm_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ typed_declspecs setspecs parm_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | typed_declspecs setspecs notype_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | typed_declspecs setspecs notype_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | typed_declspecs setspecs absdcl maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | typed_declspecs setspecs absdcl maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | declmods setspecs notype_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | declmods setspecs notype_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } - -- | declmods setspecs absdcl maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | declmods setspecs absdcl maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); -+/* end-GG-local */ - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -@@ -2871,30 +2878,35 @@ - - myparms: - myparm -- { push_parm_decl ($1); } -+/* begin-GG-local: explicit register specification for parameters */ -+ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } - | myparms ',' myparm -- { push_parm_decl ($3); } -+ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } - ; - - /* A single parameter declaration or parameter type name, -- as found in a parmlist. DOES NOT ALLOW AN INITIALIZER OR ASMSPEC */ -+ as found in a parmlist. DOES NOT ALLOW AN INITIALIZER */ - - myparm: -- parm_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -+ parm_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, - $1), -- build_tree_list (prefix_attributes, -- $2)); } -- | notype_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $1), -- build_tree_list (prefix_attributes, -- $2)); } -- | absdcl maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $1), -- build_tree_list (prefix_attributes, -- $2)); } -+ build_tree_list (prefix_attributes, -+ $3)), $2); } -+ | notype_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $1), -+ build_tree_list (prefix_attributes, -+ $3)), $2); } -+ | absdcl maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $1), -+ build_tree_list (prefix_attributes, -+ $3)), $2); } -+/* end-GG-local */ - ; - - optparmlist: -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-parse.y gcc/gcc/c-parse.y ---- gcc-2.95.3/gcc/c-parse.y Tue Apr 27 00:35:51 1999 -+++ gcc/gcc/c-parse.y Thu Sep 27 19:56:19 2001 -@@ -2134,56 +2134,63 @@ - - parms: - parm -- { push_parm_decl ($1); } -+/* begin-GG-local: explicit register specification for parameters */ -+ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } - | parms ',' parm -- { push_parm_decl ($3); } -+ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } - ; - - /* A single parameter declaration or parameter type name, - as found in a parmlist. */ - parm: -- typed_declspecs setspecs parm_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ typed_declspecs setspecs parm_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | typed_declspecs setspecs notype_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | typed_declspecs setspecs notype_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | typed_declspecs setspecs absdcl maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | typed_declspecs setspecs absdcl maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } -- | declmods setspecs notype_declarator maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | declmods setspecs notype_declarator maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); - resume_momentary ($2); } - -- | declmods setspecs absdcl maybe_attribute -- { $$ = build_tree_list (build_tree_list (current_declspecs, -- $3), -- build_tree_list (prefix_attributes, -- $4)); -+ | declmods setspecs absdcl maybeasm maybe_attribute -+ { $$ = build_tree_list ( -+ build_tree_list (build_tree_list (current_declspecs, -+ $3), -+ build_tree_list (prefix_attributes, -+ $5)), $4); -+/* end-GG-local */ - current_declspecs = TREE_VALUE (declspec_stack); - prefix_attributes = TREE_PURPOSE (declspec_stack); - declspec_stack = TREE_CHAIN (declspec_stack); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/c-tree.h gcc/gcc/c-tree.h ---- gcc-2.95.3/gcc/c-tree.h Thu Feb 18 21:38:43 1999 -+++ gcc/gcc/c-tree.h Thu Sep 27 19:35:53 2001 -@@ -331,7 +331,9 @@ - extern void print_lang_type PROTO((FILE *, tree, int)); - extern void push_c_function_context PROTO((void)); - extern void push_label_level PROTO((void)); --extern void push_parm_decl PROTO((tree)); -+/* begin-GG-local: explicit register specification for parameters */ -+extern void push_parm_decl PROTO((tree, tree)); -+/* end-GG-local */ - extern tree pushdecl PROTO((tree)); - extern tree pushdecl_top_level PROTO((tree)); - extern void pushlevel PROTO((int)); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/calls.c gcc/gcc/calls.c --- gcc-2.95.3/gcc/calls.c Thu Jan 25 15:03:00 2001 +++ gcc/gcc/calls.c Thu Sep 27 19:35:54 2001 @@ -2613,6 +2613,10 @@ @@ -5146,7 +2794,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/calls.c gcc/gcc/calls.c /* If this kind of value comes back in memory, decide where in memory it should come back. */ if (aggregate_value_p (type_for_mode (outmode, 0))) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/cccp.c gcc/gcc/cccp.c --- gcc-2.95.3/gcc/cccp.c Thu Jan 25 15:03:00 2001 +++ gcc/gcc/cccp.c Thu Sep 27 19:35:54 2001 @@ -85,7 +85,7 @@ @@ -5267,7 +2914,100 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/cccp.c gcc/gcc/cccp.c if (len == 1 && dir->fname[len - 1] == '.') len = 0; else -diff -ruN --exclude=CVS gcc-2.95.3/gcc/collect2.c gcc/gcc/collect2.c +--- gcc-2.95.3/gcc/c-decl.c Thu Jan 25 15:02:59 2001 ++++ gcc/gcc/c-decl.c Thu Sep 27 19:35:53 2001 +@@ -4227,8 +4227,10 @@ + record the given order of parms in `parm_order'. */ + + void +-push_parm_decl (parm) +- tree parm; ++/* begin-GG-local: explicit register specification for parameters */ ++push_parm_decl (parm, asmspec) ++ tree parm, asmspec; ++/* end-GG-local */ + { + tree decl; + int old_immediate_size_expand = immediate_size_expand; +@@ -4253,6 +4255,78 @@ + } + #endif + ++ /* begin-GG-local: explicit register specification for parameters */ ++ if (asmspec) ++#ifdef TARGET_AMIGAOS ++ { ++ char *regname=TREE_STRING_POINTER(asmspec); ++ int regnum; ++ if ((regnum=decode_reg_name(regname))>=0) ++ { ++ tree type=TREE_TYPE(decl); ++ if (HARD_REGNO_MODE_OK(regnum, TYPE_MODE(type))) ++ { ++ tree t, attrs; ++ push_obstacks_nochange(); ++ end_temporary_allocation(); ++ /* Build tree for __attribute__ ((asm(regnum))). */ ++#if 0 ++ /* This doesn't work well because of a bug in ++ attribute_list_contained(), which passes list of arguments to ++ simple_cst_equal() instead of passing every argument ++ separately. */ ++ attrs=tree_cons(get_identifier("asm"), tree_cons(NULL_TREE, ++ build_int_2_wide(regnum, 0), NULL_TREE), NULL_TREE); ++#else ++ attrs=tree_cons(get_identifier("asm"), ++ build_int_2_wide(regnum, 0), NULL_TREE); ++#endif ++#if 0 ++ /* build_type_attribute_variant() would seem to be more ++ appropriate here. However, that function does not support ++ attributes for parameters properly. It modifies ++ TYPE_MAIN_VARIANT of a new type. As a result, comptypes() ++ thinks that types of parameters in prototype and definition ++ are different and issues error messages. See also comment ++ below. */ ++ type=build_type_attribute_variant(type, attrs); ++#else ++ /* First check whether such a type already exists - if yes, use ++ that one. This is very important, since otherwise ++ common_type() would think that it sees two different ++ types and would try to merge them - this could result in ++ warning messages. */ ++ for (t=TYPE_MAIN_VARIANT(type); t; t=TYPE_NEXT_VARIANT(t)) ++ if (comptypes(t, type)==1 ++ && attribute_list_equal(TYPE_ATTRIBUTES(t), attrs)) ++ break; ++ if (t) ++ type=t; ++ else ++ { ++ /* Create a new variant, with differing attributes. ++ (Hack! Type with differing attributes should no longer be ++ a variant of its main type. See comment above for ++ explanation why this was necessary). */ ++ type=build_type_copy(type); ++ TYPE_ATTRIBUTES(type)=attrs; ++ } ++#endif ++ TREE_TYPE(decl)=type; ++ pop_obstacks(); ++ } ++ else ++ error_with_decl(decl, ++ "register number for `%s' isn't suitable for the data type"); ++ } ++ else ++ error("invalid register name `%s'", regname); ++ } ++#else /* !TARGET_AMIGAOS */ ++ error("explicit register specification for parameters is not supported for this target"); ++#endif /* !TARGET_AMIGAOS */ ++ /* end-GG-local */ ++ + decl = pushdecl (decl); + + immediate_size_expand = old_immediate_size_expand; --- gcc-2.95.3/gcc/collect2.c Thu Jan 25 15:03:01 2001 +++ gcc/gcc/collect2.c Thu Sep 27 19:35:54 2001 @@ -157,6 +157,12 @@ @@ -5475,7 +3215,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/collect2.c gcc/gcc/collect2.c maybe_unlink (file) char *file; { -diff -ruN --exclude=CVS gcc-2.95.3/gcc/combine.c gcc/gcc/combine.c --- gcc-2.95.3/gcc/combine.c Thu Jan 25 15:03:01 2001 +++ gcc/gcc/combine.c Thu Sep 27 19:35:54 2001 @@ -122,6 +122,11 @@ @@ -5499,126 +3238,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/combine.c gcc/gcc/combine.c /* We can't do this if we are widening INNER_MODE (it may not be aligned, for one thing). */ && GET_MODE_BITSIZE (inner_mode) >= GET_MODE_BITSIZE (tmode) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/#linux.h# gcc/gcc/config/#linux.h# ---- gcc-2.95.3/gcc/config/#linux.h# Thu Jan 1 01:00:00 1970 -+++ gcc/gcc/config/#linux.h# Tue Jun 4 19:45:11 2002 -@@ -0,0 +1,115 @@ -+/* Definitions for Linux-based GNU systems with ELF format -+ Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -+ Contributed by Eric Youngdale. -+ Modified for stabs-in-ELF by H.J. Lu (hjl@lucon.org). -+ -+This file is part of GNU CC. -+ -+GNU CC is free software; you can redistribute it and/or modify -+it under the terms of the GNU General Public License as published by -+the Free Software Foundation; either version 2, or (at your option) -+any later version. -+ -+GNU CC is distributed in the hope that it will be useful, -+but WITHOUT ANY WARRANTY; without even the implied warranty of -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+GNU General Public License for more details. -+ -+You should have received a copy of the GNU General Public License -+along with GNU CC; see the file COPYING. If not, write to -+the Free Software Foundation, 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+/* Don't assume anything about the header files. */ -+#define NO_IMPLICIT_EXTERN_C -+ -+#undef HAVE_ATEXIT -+#define HAVE_ATEXIT -+ -+/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is. -+ For now, we play safe. It may change later. */ -+ -+#if 0 -+#undef MULTIBYTE_CHARS -+#define MULTIBYTE_CHARS 1 -+#endif -+ -+#undef ASM_APP_ON -+#define ASM_APP_ON "#APP\n" -+ -+#undef ASM_APP_OFF -+#define ASM_APP_OFF "#NO_APP\n" -+ -+#define SET_ASM_OP ".set" -+ -+/* Use stabs instead of DWARF debug format. */ -+#undef PREFERRED_DEBUGGING_TYPE -+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG -+#include "svr4.h" -+ -+#undef MD_EXEC_PREFIX -+#undef MD_STARTFILE_PREFIX -+ -+/* Output at beginning of assembler file. */ -+/* The .file command should always begin the output. */ -+#undef ASM_FILE_START -+#define ASM_FILE_START(FILE) \ -+ do { \ -+ output_file_directive (FILE, main_input_filename); \ -+ fprintf (FILE, "\t.version\t\"01.01\"\n"); \ -+ } while (0) -+ -+/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add -+ the GNU/Linux magical crtbegin.o file (see crtstuff.c) which -+ provides part of the support for getting C++ file-scope static -+ object constructed before entering `main'. */ -+ -+#undef STARTFILE_SPEC -+#define STARTFILE_SPEC \ -+ "%{!shared: \ -+ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ -+ %{!p:%{profile:gcrt1.o%s} \ -+ %{!profile:crt1.o%s}}}} \ -+ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" -+ -+/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on -+ the GNU/Linux magical crtend.o file (see crtstuff.c) which -+ provides part of the support for getting C++ file-scope static -+ object constructed before entering `main', followed by a normal -+ GNU/Linux "finalizer" file, `crtn.o'. */ -+ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" -+ -+/* This is for -profile to use -lc_p instead of -lc. */ -+#ifndef CC1_SPEC -+#define CC1_SPEC "%{profile:-p}" -+#endif -+ -+#ifndef USE_GNULIBC_1 -+#undef DEFAULT_VTABLE_THUNKS -+#define DEFAULT_VTABLE_THUNKS 1 -+#endif -+ -+#undef LIB_SPEC -+/* We no longer link with libc_p.a or libg.a by default. If you -+ want to profile or debug the GNU/Linux C library, please add -+ -profile or -ggdb to LDFLAGS at the link time, respectively. */ -+#if 1 -+#ifdef USE_GNULIBC_1 -+#define LIB_SPEC \ -+ "%{!shared: %{p:-lgmon} %{pg:-lgmon} %{profile:-lgmon -lc_p} \ -+ %{!profile:%{!ggdb:-lc} %{ggdb:-lg}}}" -+#else -+#define LIB_SPEC \ -+ "%{shared: -lc} \ -+ %{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \ -+ %{profile:-lc_p} %{!profile: -lc}}" -+#endif -+#else -+#define LIB_SPEC \ -+ "%{!shared: \ -+ %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} \ -+ %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}" -+#endif -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/amithlon.h gcc/gcc/config/i386/amithlon.h --- gcc-2.95.3/gcc/config/i386/amithlon.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/i386/amithlon.h Tue Jun 4 19:39:04 2002 @@ -0,0 +1,355 @@ @@ -5977,749 +3596,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/amithlon.h gcc/gcc/config/i38 +#define COLLECT2_POSTLINK_HOOK(OUTPUT_FILE) amigaos_postlink_hook(OUTPUT_FILE) +/* end-GG-local */ + -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/amithlon.h-new gcc/gcc/config/i386/amithlon.h-new ---- gcc-2.95.3/gcc/config/i386/amithlon.h-new Thu Jan 1 01:00:00 1970 -+++ gcc/gcc/config/i386/amithlon.h-new Tue Jun 4 19:44:45 2002 -@@ -0,0 +1,356 @@ -+/* Definitions for Intel 386 running Linux-based GNU systems with ELF format. -+ Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -+ Contributed by Eric Youngdale. -+ Modified for stabs-in-ELF by H.J. Lu. -+ -+This file is part of GNU CC. -+ -+GNU CC is free software; you can redistribute it and/or modify -+it under the terms of the GNU General Public License as published by -+the Free Software Foundation; either version 2, or (at your option) -+any later version. -+ -+GNU CC is distributed in the hope that it will be useful, -+but WITHOUT ANY WARRANTY; without even the implied warranty of -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+GNU General Public License for more details. -+ -+You should have received a copy of the GNU General Public License -+along with GNU CC; see the file COPYING. If not, write to -+the Free Software Foundation, 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+/* Amithlon is basically just a Linux process, so lets act as one... */ -+ -+#include -+ -+/* Now undo and redefine */ -+#undef LINUX_DEFAULT_ELF -+ -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (i386be Amithlon/ELF)"); -+ -+/* Some predicates used in i386be.md */ -+#undef PREDICATE_CODES -+#define PREDICATE_CODES \ -+ {"cint_operand", {CONST_INT}}, \ -+ {"reg_or_cint_operand", {SUBREG, REG, CONST_INT}}, \ -+ -+/* Now the fun part: let's use big endian integers, but little endian -+ floats and instructions ... */ -+ -+/* Define this if most significant byte of a word is the lowest numbered. */ -+#undef BYTES_BIG_ENDIAN -+#define BYTES_BIG_ENDIAN 1 -+ -+/* Define this if most significant word of a multiword number is the lowest -+ numbered. */ -+#undef WORDS_BIG_ENDIAN -+#define WORDS_BIG_ENDIAN 1 -+ -+/* Define this if most significant word of doubles is the lowest numbered. */ -+#undef FLOAT_WORDS_BIG_ENDIAN -+#define FLOAT_WORDS_BIG_ENDIAN 0 -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+#if 0 -+ -+/* Since GCC assumes the endian word order for registers is the same as for -+ memory, we have to swap eax and edx :( */ -+ -+This turned out to be WAY to difficult .... -+ -+ -+/* 1 for registers that have pervasive standard uses -+ and are not available for the register allocator. -+ On the 80386, the stack pointer is such, as is the arg pointer. */ -+ -+#undef FIXED_REGISTERS -+#define FIXED_REGISTERS \ -+/*dx,ax,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7,arg*/ \ -+{ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 } -+ -+/* 1 for registers not available across function calls. -+ These must include the FIXED_REGISTERS and also any -+ registers that can be used without being saved. -+ The latter must include the registers where values are returned -+ and the register where structure-value addresses are passed. -+ Aside from that, you can include as many other registers as you like. */ -+ -+#undef CALL_USED_REGISTERS -+#define CALL_USED_REGISTERS \ -+/*dx,ax,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7,arg*/ \ -+{ 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } -+ -+/* Order in which to allocate registers. Each register must be -+ listed once, even those in FIXED_REGISTERS. List frame pointer -+ late and fixed registers last. Note that, in general, we prefer -+ registers listed in CALL_USED_REGISTERS, keeping the others -+ available for storage of persistent values. -+ -+ Three different versions of REG_ALLOC_ORDER have been tried: -+ -+ If the order is edx, ecx, eax, ... it produces a slightly faster compiler, -+ but slower code on simple functions returning values in eax. -+ -+ If the order is eax, ecx, edx, ... it causes reload to abort when compiling -+ perl 4.036 due to not being able to create a DImode register (to hold a 2 -+ word union). -+ -+ If the order is eax, edx, ecx, ... it produces better code for simple -+ functions, and a slightly slower compiler. Users complained about the code -+ generated by allocating edx first, so restore the 'natural' order of things. */ -+ -+#undef REG_ALLOC_ORDER -+#define REG_ALLOC_ORDER \ -+/*ax,dx,cx,bx,si,di,bp,sp,st,st1,st2,st3,st4,st5,st6,st7,arg*/ \ -+{ 1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 } -+ -+/* How to refer to registers in assembler output. -+ This sequence is indexed by compiler's hard-register-number (see above). */ -+ -+/* In order to refer to the first 8 regs as 32 bit regs prefix an "e" -+ For non floating point regs, the following are the HImode names. -+ -+ For float regs, the stack top is sometimes referred to as "%st(0)" -+ instead of just "%st". PRINT_REG handles this with the "y" code. */ -+ -+#undef HI_REGISTER_NAMES -+#define HI_REGISTER_NAMES \ -+{"dx","ax","cx","bx","si","di","bp","sp", \ -+ "st","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)","" } -+ -+#define REGISTER_NAMES HI_REGISTER_NAMES -+ -+/* Table of additional register names to use in user input. */ -+ -+#undef ADDITIONAL_REGISTER_NAMES -+#define ADDITIONAL_REGISTER_NAMES \ -+{ { "edx", 0 }, { "eax", 1 }, { "ecx", 2 }, { "ebx", 3 }, \ -+ { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 }, \ -+ { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 }, \ -+ { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 } } -+ -+/* Note we are omitting these since currently I don't know how -+to get gcc to use these, since they want the same but different -+number as al, and ax. -+*/ -+ -+/* note the last four are not really qi_registers, but -+ the md will have to never output movb into one of them -+ only a movw . There is no movb into the last four regs */ -+ -+#undef QI_REGISTER_NAMES -+#define QI_REGISTER_NAMES \ -+{"dl", "al", "cl", "bl", "si", "di", "bp", "sp",} -+ -+/* These parallel the array above, and can be used to access bits 8:15 -+ of regs 0 through 3. */ -+ -+#undef QI_HIGH_REGISTER_NAMES -+#define QI_HIGH_REGISTER_NAMES \ -+{"dh", "ah", "ch", "bh", } -+ -+/* How to renumber registers for dbx and gdb. */ -+ -+/* {1,2,0,3,6,7,4,5,12,13,14,15,16,17} */ -+#undef DBX_REGISTER_NUMBER -+#define DBX_REGISTER_NUMBER(n) \ -+((n) == 0 ? 1 : \ -+ (n) == 1 ? 2 : \ -+ (n) == 2 ? 0 : \ -+ (n) == 3 ? 3 : \ -+ (n) == 4 ? 6 : \ -+ (n) == 5 ? 7 : \ -+ (n) == 6 ? 4 : \ -+ (n) == 7 ? 5 : \ -+ (n) + 4) -+ -+#endif // 0 -+ -+ -+ -+ -+ -+ -+ -+/* The assembler will use big endian for data section, but we must -+ * swap the words in 64 bit integers ourself. We also have to "undo" -+ * the byteswap in the individual words for floats -+ */ -+ -+/* This is how to output an assembler line defining an `long long' -+ constant. */ -+ -+#undef ASM_OUTPUT_DOUBLE_INT -+#define ASM_OUTPUT_DOUBLE_INT(FILE,VALUE) \ -+do { \ -+ assemble_integer (operand_subword ((VALUE), 0, 0, DImode), \ -+ UNITS_PER_WORD, 1); \ -+ assemble_integer (operand_subword ((VALUE), 1, 0, DImode), \ -+ UNITS_PER_WORD, 1); \ -+} while (0) -+ -+ -+/* This is how to output an assembler line defining a `double' constant. */ -+ -+#undef ASM_OUTPUT_DOUBLE -+#define ASM_OUTPUT_DOUBLE(FILE,VALUE) \ -+do { long l[2]; \ -+ REAL_VALUE_TO_TARGET_DOUBLE (VALUE, l); \ -+ fprintf (FILE, "%s 0x%lx,0x%lx\n", ASM_LONG, bswap_32(l[0]), bswap_32(l[1])); \ -+ } while (0) -+ -+/* This is how to output a `long double' extended real constant. */ -+ -+#undef ASM_OUTPUT_LONG_DOUBLE -+#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE) \ -+do { long l[3]; \ -+ REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \ -+ fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, bswap_32(l[0]), bswap_32(l[1]), bswap_32(l[2])); \ -+ } while (0) -+ -+/* This is how to output an assembler line defining a `float' constant. */ -+ -+#undef ASM_OUTPUT_FLOAT -+#define ASM_OUTPUT_FLOAT(FILE,VALUE) \ -+do { long l; \ -+ REAL_VALUE_TO_TARGET_SINGLE (VALUE, l); \ -+ fprintf ((FILE), "%s 0x%lx\n", ASM_LONG, bswap_32(l)); \ -+ } while (0) -+ -+ -+#undef CPP_SPEC -+#define CPP_SPEC \ -+ "%(cpp_cpu) " \ -+ "-D__BIG_ENDIAN__ -Amachine(bigendian) " \ -+ "%{!ansi: " \ -+ "%{!noixemul:-Dixemul} " \ -+ "%{noixemul:-Dlibnix}} " \ -+ "%{!noixemul:-D__ixemul__ -D__ixemul} " \ -+ "%{noixemul:-D__libnix__ -D__libnix} " \ -+ "%{msoft-float: -D_SOFT_FLOAT}" -+ -+ -+/* amiga/amigaos are the new "standard" defines for the Amiga. -+ * MCH_AMIGA, AMIGA, __chip etc. are used in other compilers and are -+ * provided for compatibility reasons. -+ * We define both AmigaOS and Amithlon systems. */ -+ -+#undef CPP_PREDEFINES -+#define CPP_PREDEFINES \ -+ "-D__ELF__ " \ -+ "-Damiga -Damigaos -DMCH_AMIGA -DAMIGA " \ -+ "-Damithlon " \ -+ "-Asystem(amigaos) -Asystem(amithlon) " -+ -+#undef CC1_SPEC -+#define CC1_SPEC "%(cc1_cpu)" -+ -+/* Choose the right startup file, depending on whether we use base relative -+ code, base relative code with automatic relocation (-resident), or plain -+ crt0.o. -+ -+ Profiling is currently only available for plain startup. -+ mcrt0.o does not exist, but at least we get an error message when using -+ the -p flag */ -+ -+#undef STARTFILE_SPEC -+#define STARTFILE_SPEC \ -+ "%{!shared: " \ -+ "%{!noixemul: " \ -+ "%{pg:gcrt0.o%s} " \ -+ "%{!pg: %{p:mcrt0.o%s} " \ -+ "%{!p:crt0.o%s}}} " \ -+ "%{noixemul:" \ -+ "%{resident:libnix/nrcrt0.o%s} " \ -+ "%{!resident:%{fbaserel:libnix/nbcrt0.o%s}%{!fbaserel:libnix/ncrt0.o%s}} " \ -+ "libnix/crti.o%s}} " \ -+ "%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" -+ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC "%{noixemul:-lstubs} " \ -+ "%{!shared:crtend.o%s} %{shared:crtendS.o%s} " \ -+ "%{noixemul:libnix/crtn.o%s}" -+ -+/* Automatically search libamiga.a for AmigaOS specific functions. Note -+ that we first search the standard C library to resolve as much as -+ possible from there, since it has names that are duplicated in libamiga.a -+ which we *don't* want from there. Then search libamiga.a for any calls -+ that were not generated inline, and finally search the standard C library -+ again to resolve any references that libamiga.a might have generated. -+ This may only be a temporary solution since it might be better to simply -+ remove the things from libamiga.a that should be pulled in from libc.a -+ instead, which would eliminate the first reference to libc.a. Note that -+ if we don't search it automatically, it is very easy for the user to try -+ to put in a -lamiga himself and get it in the wrong place, so that (for -+ example) calls like sprintf come from -lamiga rather than -lc. */ -+ -+#undef LIB_SPEC -+#define LIB_SPEC \ -+ "%{!noixemul: " \ -+ "%{!p:%{!pg:-lc -lamiga -lc}} " \ -+ "%{p:-lc_p}%{pg:-lc_p}} " \ -+ "%{noixemul:-lnixmain -lnix -lamiga " \ -+ "%{mstackcheck:-lstack} " \ -+ "%{mstackextend:-lstack}} -lamigastubs" -+ -+/* Pass appropriate linker flavours depending on user-supplied -+ commandline options. */ -+ -+#undef LINK_SPEC -+#define LINK_SPEC \ -+ "%{noixemul:-fl libnix} " \ -+ "%{shared:-shared} " \ -+ "%{!shared: " \ -+ "%{!static: " \ -+ "%{rdynamic:-export-dynamic} " \ -+ "%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} " \ -+ "%{static:-static}} " -+ -+/* Get perform_* macros to build libgcc.a. */ -+/* Do I have to? #include "i386/perform.h" */ -+ -+ -+/* begin-GG-local: dynamic libraries */ -+ -+/* This macro is used to check if all collect2 facilities should be used. -+ We need a few special ones, like stripping after linking. */ -+ -+#define DO_COLLECTING (do_collecting || amigaos_do_collecting()) -+ -+/* This macro is called in collect2 for every GCC argument name. -+ ARG is a part of commandline (without '\0' at the end). */ -+ -+#define COLLECT2_GCC_OPTIONS_HOOK(ARG) amigaos_gccopts_hook(ARG) -+ -+/* This macro is called in collect2 for every ld's "-l" or "*.o" or "*.a" -+ argument. ARG is a complete argument, with '\0' at the end. */ -+ -+#define COLLECT2_LIBNAME_HOOK(ARG) amigaos_libname_hook(ARG) -+ -+/* This macro is called at collect2 exit, to clean everything up. */ -+ -+#define COLLECT2_EXTRA_CLEANUP amigaos_collect2_cleanup -+ -+/* This macro is called just before the first linker invocation. -+ LD1_ARGV is "char** argv", which will be passed to "ld". STRIP is an -+ *address* of "strip_flag" variable. */ -+ -+#define COLLECT2_PRELINK_HOOK(LD1_ARGV, STRIP) \ -+amigaos_prelink_hook((LD1_ARGV), (STRIP)) -+ -+/* This macro is called just after the first linker invocation, in place of -+ "nm" and "ldd". OUTPUT_FILE is the executable's filename. */ -+ -+#define COLLECT2_POSTLINK_HOOK(OUTPUT_FILE) amigaos_postlink_hook(OUTPUT_FILE) -+/* end-GG-local */ -+ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/i386.c gcc/gcc/config/i386/i386.c ---- gcc-2.95.3/gcc/config/i386/i386.c Tue Sep 7 09:38:56 1999 -+++ gcc/gcc/config/i386/i386.c Fri Apr 12 18:07:31 2002 -@@ -876,21 +876,84 @@ - rtx *operands; - { - rtx x; -+ - if (GET_CODE (operands[0]) == MEM - && GET_CODE (x = XEXP (operands[0], 0)) == PRE_DEC) - { - if (XEXP (x, 0) != stack_pointer_rtx) - abort (); -- return "push%L1 %1"; -+ -+ if (BYTES_BIG_ENDIAN) -+ { -+ if (REG_P (operands[1])) -+ { -+ // lcs: AFAIK, we never push a half-word with this function -+ output_asm_insn (AS1 (bswap,%1), operands); -+ output_asm_insn (AS1 (push%L1,%1), operands); -+ output_asm_insn (AS1 (bswap,%1), operands); -+ RET; -+ } -+ else if (GET_CODE (operands[1]) == CONST_INT ) -+ { -+ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]))); -+ return "push%L1 %1"; -+ } -+ else -+ { -+ abort (); -+ } -+ } -+ else -+ return "push%L1 %1"; - } - else if (GET_CODE (operands[1]) == CONST_DOUBLE) -+ { - return output_move_const_single (operands); -+ } - else if (GET_CODE (operands[0]) == REG || GET_CODE (operands[1]) == REG) -- return AS2 (mov%L0,%1,%0); -+ { -+ if (!BYTES_BIG_ENDIAN || -+ (GET_CODE (operands[0]) == REG && GET_CODE (operands[1]) == REG)) -+ return AS2 (mov%L0,%1,%0); -+ else -+ { -+ if (GET_CODE (operands[0]) == REG) -+ { -+ output_asm_insn (AS2 (mov%L0,%1,%0), operands); -+ -+ if (GET_CODE (operands[1]) == MEM) -+ { -+ output_asm_insn (AS1 (bswap,%0), operands); -+ } -+ RET; -+ } -+ else -+ { -+ output_asm_insn (AS1 (bswap,%1), operands); -+ output_asm_insn (AS2 (mov%L0,%1,%0), operands); -+ output_asm_insn (AS1 (bswap,%1), operands); -+ RET; -+ } -+ } -+ } -+ else if (BYTES_BIG_ENDIAN && GET_CODE (operands[1]) == CONST_INT) -+ { -+ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]) ) ); -+ return AS2 (mov%L0,%1,%0); -+ } - else if (CONSTANT_P (operands[1])) -- return AS2 (mov%L0,%1,%0); -+ { -+ // lcs: What is this? a label/symbol move to memory? Symbols -+ // should be fine, I suppose, but labels will be little endian? -+ if (BYTES_BIG_ENDIAN && GET_CODE (operands[0]) != GET_CODE (operands[1])) -+ abort(); -+ -+ return AS2 (mov%L0,%1,%0); -+ RET; -+ } - else - { -+ // lcs: WTF is this? Memory to memory move? Floating point move? - output_asm_insn ("push%L1 %1", operands); - return "pop%L0 %0"; - } -@@ -1056,9 +1119,21 @@ - - REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]); - REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, l); -- operands[1] = GEN_INT (l[0]); -- middlehalf[1] = GEN_INT (l[1]); -- latehalf[1] = GEN_INT (l[2]); -+ -+ if (BYTES_BIG_ENDIAN) -+ { -+ // lcs: We have changed the data type from double to interger: -+ // we have to compensate for the different byte order -+ operands[1] = GEN_INT (bswap_32 (l[0])); -+ middlehalf[1] = GEN_INT (bswap_32 (l[1])); -+ latehalf[1] = GEN_INT (bswap_32 (l[2])); -+ } -+ else -+ { -+ operands[1] = GEN_INT (l[0]); -+ middlehalf[1] = GEN_INT (l[1]); -+ latehalf[1] = GEN_INT (l[2]); -+ } - } - else if (CONSTANT_P (operands[1])) - /* No non-CONST_DOUBLE constant should ever appear here. */ -@@ -1076,18 +1151,81 @@ - /* Size is not 12. */ - - if (optype0 == REGOP) -- latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); -+ { -+// printf( "move double src: reg %d\n", REGNO (operands[0])); -+ if (0 && WORDS_BIG_ENDIAN) -+ { -+ latehalf[0] = operands[0]; -+ operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); -+ } -+ else -+ { -+ latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); -+ } -+ } - else if (optype0 == OFFSOP) -- latehalf[0] = adj_offsettable_operand (operands[0], 4); -+ { -+// printf( "move double src: mem\n"); -+ if (0 && WORDS_BIG_ENDIAN) -+ { -+ latehalf[0] = operands[0]; -+ operands[0] = adj_offsettable_operand (operands[0], 4); -+ } -+ else -+ { -+ latehalf[0] = adj_offsettable_operand (operands[0], 4); -+ } -+ } - else - latehalf[0] = operands[0]; - - if (optype1 == REGOP) -- latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); -+ { -+// printf( "move double dst: reg %d\n", REGNO (operands[0])); -+ if (0 && WORDS_BIG_ENDIAN) -+ { -+ latehalf[1] = operands[1]; -+ operands[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); -+ } -+ else -+ { -+ latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); -+ } -+ } - else if (optype1 == OFFSOP) -- latehalf[1] = adj_offsettable_operand (operands[1], 4); -+ { -+// printf( "move double dst: mem\n"); -+ if (0 && WORDS_BIG_ENDIAN) -+ { -+ latehalf[1] = operands[1]; -+ operands[1] = adj_offsettable_operand (operands[1], 4); -+ } -+ else -+ { -+ latehalf[1] = adj_offsettable_operand (operands[1], 4); -+ } -+ } - else if (optype1 == CNSTOP) -- split_double (operands[1], &operands[1], &latehalf[1]); -+ { -+ if (BYTES_BIG_ENDIAN && GET_CODE (operands[1]) == CONST_DOUBLE) -+ { -+ split_double (operands[1], &operands[1], &latehalf[1]); -+ -+ // lcs: We have changed the data type from double to interger: -+ // we have to compensate for the different byte order -+ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]) ) ); -+ latehalf[1] = GEN_INT ( bswap_32 (INTVAL (latehalf[1]) ) ); -+ } -+ else -+ if (0 && WORDS_BIG_ENDIAN) -+ { -+ split_double (operands[1], &latehalf[1], &operands[1]); -+ } -+ else -+ { -+ split_double (operands[1], &operands[1], &latehalf[1]); -+ } -+ } - else - latehalf[1] = operands[1]; - } -@@ -1126,6 +1264,9 @@ - } - else - { -+ if (0 && WORDS_BIG_ENDIAN) -+ abort (); // lcs: I have no idea what to do here, so I abort! -+ - operands[1] = gen_rtx_MEM (DImode, latehalf[0]); - latehalf[1] = adj_offsettable_operand (operands[1], size-4); - } -@@ -1335,8 +1476,14 @@ - - REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]); - REAL_VALUE_TO_TARGET_SINGLE (r, l); -- operands[1] = GEN_INT (l); -+ -+ if (BYTES_BIG_ENDIAN) // Compensate for bswap in singlemove_string(); -+ operands[1] = GEN_INT (bswap_32(l)); -+ else -+ operands[1] = GEN_INT (l); - } -+ else if (BYTES_BIG_ENDIAN) -+ abort (); - - return singlemove_string (operands); - } -@@ -3793,24 +3940,52 @@ - while (num--) - { - rtx op = operands[num]; -+ - if (! reload_completed) -- { -+ { - lo_half[num] = gen_lowpart (SImode, op); - hi_half[num] = gen_highpart (SImode, op); - } - else if (GET_CODE (op) == REG) - { -- lo_half[num] = gen_rtx_REG (SImode, REGNO (op)); -- hi_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); -+ if (WORDS_BIG_ENDIAN) -+ { -+ lo_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); -+ hi_half[num] = gen_rtx_REG (SImode, REGNO (op)); -+ } -+ else -+ { -+ lo_half[num] = gen_rtx_REG (SImode, REGNO (op)); -+ hi_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); -+ } - } - else if (CONSTANT_P (op)) -- split_double (op, &lo_half[num], &hi_half[num]); -+ { -+ if (WORDS_BIG_ENDIAN) -+ { -+ split_double (op, &hi_half[num], &lo_half[num]); -+ } -+ else -+ { -+ split_double (op, &lo_half[num], &hi_half[num]); -+ } -+ } - else if (offsettable_memref_p (op)) - { -- rtx lo_addr = XEXP (op, 0); -- rtx hi_addr = XEXP (adj_offsettable_operand (op, 4), 0); -- lo_half[num] = change_address (op, SImode, lo_addr); -- hi_half[num] = change_address (op, SImode, hi_addr); -+ if (WORDS_BIG_ENDIAN) -+ { -+ rtx lo_addr = XEXP (adj_offsettable_operand (op, 4), 0); -+ rtx hi_addr = XEXP (op, 0); -+ lo_half[num] = change_address (op, SImode, lo_addr); -+ hi_half[num] = change_address (op, SImode, hi_addr); -+ } -+ else -+ { -+ rtx lo_addr = XEXP (op, 0); -+ rtx hi_addr = XEXP (adj_offsettable_operand (op, 4), 0); -+ lo_half[num] = change_address (op, SImode, lo_addr); -+ hi_half[num] = change_address (op, SImode, hi_addr); -+ } - } - else - abort(); -@@ -4033,11 +4208,43 @@ - output_asm_insn (AS2 (mov%L0,%4,%0), operands); - else - { -- xops[0] = operands[0]; -- xops[1] = operands[4]; -- output_asm_insn (output_move_double (xops), xops); -+ if( WORDS_BIG_ENDIAN ) -+ { -+ if( REG_P ((operands[0]))) -+ { -+ // Move LITTLE ENDIAN double word -+ -+ xops[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); -+ xops[1] = operands[4]; -+ output_asm_insn (AS2 (mov%L0,%1,%0), xops); -+ -+ xops[0] = operands[0]; -+ xops[1] = adj_offsettable_operand (operands[4], 4); -+ output_asm_insn (AS2 (mov%L0,%1,%0), xops); -+ } -+ else -+ { -+ // Should not happen? -+ abort(); -+ } -+ } -+ else -+ { -+ xops[0] = operands[0]; -+ xops[1] = operands[4]; -+ output_asm_insn (output_move_double (xops), xops); -+ } - } - } -+ else -+ { -+ if (WORDS_BIG_ENDIAN) -+ { -+ // Can this ever happen? -+ -+ abort(); -+ } -+ } - - return AS1 (fldc%W2,%2); - } -@@ -5739,3 +5946,31 @@ - - return len; - } -+ -+/* Functions to convert between little and endian modes */ -+ -+short -+bswap_16( x ) -+ short x; -+{ -+ return ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)); -+} -+ -+long -+bswap_32( x ) -+ long x; -+{ -+ return ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | -+ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)); -+} -+ -+/* Return 1 is the operand is either a non-special register or ANY -+ constant integer. */ -+ -+int -+reg_or_cint_operand (op, mode) -+ register rtx op; -+ enum machine_mode mode; -+{ -+ return (GET_CODE (op) == CONST_INT || register_operand (op, mode)); -+} -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/i386.h gcc/gcc/config/i386/i386.h ---- gcc-2.95.3/gcc/config/i386/i386.h Sun Apr 25 13:43:49 1999 -+++ gcc/gcc/config/i386/i386.h Mon Sep 24 12:24:43 2001 -@@ -2766,6 +2766,9 @@ - extern int small_shift_operand (); - extern char *output_ashl (); - extern int memory_address_info (); -+extern short bswap_16 (); -+extern long bswap_32 (); -+extern int reg_or_cint_operand (); - - #ifdef NOTYET - extern struct rtx_def *copy_all_rtx (); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/i386be.md gcc/gcc/config/i386/i386be.md --- gcc-2.95.3/gcc/config/i386/i386be.md Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/i386/i386be.md Tue Apr 9 23:07:39 2002 @@ -0,0 +1,8714 @@ @@ -15437,7 +12313,386 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/i386be.md gcc/gcc/config/i386 + load_pic_register (1); + DONE; +}") -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/t-amithlon gcc/gcc/config/i386/t-amithlon +--- gcc-2.95.3/gcc/config/i386/i386.c Tue Sep 7 09:38:56 1999 ++++ gcc/gcc/config/i386/i386.c Fri Apr 12 18:07:31 2002 +@@ -876,21 +876,84 @@ + rtx *operands; + { + rtx x; ++ + if (GET_CODE (operands[0]) == MEM + && GET_CODE (x = XEXP (operands[0], 0)) == PRE_DEC) + { + if (XEXP (x, 0) != stack_pointer_rtx) + abort (); +- return "push%L1 %1"; ++ ++ if (BYTES_BIG_ENDIAN) ++ { ++ if (REG_P (operands[1])) ++ { ++ // lcs: AFAIK, we never push a half-word with this function ++ output_asm_insn (AS1 (bswap,%1), operands); ++ output_asm_insn (AS1 (push%L1,%1), operands); ++ output_asm_insn (AS1 (bswap,%1), operands); ++ RET; ++ } ++ else if (GET_CODE (operands[1]) == CONST_INT ) ++ { ++ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]))); ++ return "push%L1 %1"; ++ } ++ else ++ { ++ abort (); ++ } ++ } ++ else ++ return "push%L1 %1"; + } + else if (GET_CODE (operands[1]) == CONST_DOUBLE) ++ { + return output_move_const_single (operands); ++ } + else if (GET_CODE (operands[0]) == REG || GET_CODE (operands[1]) == REG) +- return AS2 (mov%L0,%1,%0); ++ { ++ if (!BYTES_BIG_ENDIAN || ++ (GET_CODE (operands[0]) == REG && GET_CODE (operands[1]) == REG)) ++ return AS2 (mov%L0,%1,%0); ++ else ++ { ++ if (GET_CODE (operands[0]) == REG) ++ { ++ output_asm_insn (AS2 (mov%L0,%1,%0), operands); ++ ++ if (GET_CODE (operands[1]) == MEM) ++ { ++ output_asm_insn (AS1 (bswap,%0), operands); ++ } ++ RET; ++ } ++ else ++ { ++ output_asm_insn (AS1 (bswap,%1), operands); ++ output_asm_insn (AS2 (mov%L0,%1,%0), operands); ++ output_asm_insn (AS1 (bswap,%1), operands); ++ RET; ++ } ++ } ++ } ++ else if (BYTES_BIG_ENDIAN && GET_CODE (operands[1]) == CONST_INT) ++ { ++ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]) ) ); ++ return AS2 (mov%L0,%1,%0); ++ } + else if (CONSTANT_P (operands[1])) +- return AS2 (mov%L0,%1,%0); ++ { ++ // lcs: What is this? a label/symbol move to memory? Symbols ++ // should be fine, I suppose, but labels will be little endian? ++ if (BYTES_BIG_ENDIAN && GET_CODE (operands[0]) != GET_CODE (operands[1])) ++ abort(); ++ ++ return AS2 (mov%L0,%1,%0); ++ RET; ++ } + else + { ++ // lcs: WTF is this? Memory to memory move? Floating point move? + output_asm_insn ("push%L1 %1", operands); + return "pop%L0 %0"; + } +@@ -1056,9 +1119,21 @@ + + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]); + REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, l); +- operands[1] = GEN_INT (l[0]); +- middlehalf[1] = GEN_INT (l[1]); +- latehalf[1] = GEN_INT (l[2]); ++ ++ if (BYTES_BIG_ENDIAN) ++ { ++ // lcs: We have changed the data type from double to interger: ++ // we have to compensate for the different byte order ++ operands[1] = GEN_INT (bswap_32 (l[0])); ++ middlehalf[1] = GEN_INT (bswap_32 (l[1])); ++ latehalf[1] = GEN_INT (bswap_32 (l[2])); ++ } ++ else ++ { ++ operands[1] = GEN_INT (l[0]); ++ middlehalf[1] = GEN_INT (l[1]); ++ latehalf[1] = GEN_INT (l[2]); ++ } + } + else if (CONSTANT_P (operands[1])) + /* No non-CONST_DOUBLE constant should ever appear here. */ +@@ -1076,18 +1151,81 @@ + /* Size is not 12. */ + + if (optype0 == REGOP) +- latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); ++ { ++// printf( "move double src: reg %d\n", REGNO (operands[0])); ++ if (0 && WORDS_BIG_ENDIAN) ++ { ++ latehalf[0] = operands[0]; ++ operands[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); ++ } ++ else ++ { ++ latehalf[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); ++ } ++ } + else if (optype0 == OFFSOP) +- latehalf[0] = adj_offsettable_operand (operands[0], 4); ++ { ++// printf( "move double src: mem\n"); ++ if (0 && WORDS_BIG_ENDIAN) ++ { ++ latehalf[0] = operands[0]; ++ operands[0] = adj_offsettable_operand (operands[0], 4); ++ } ++ else ++ { ++ latehalf[0] = adj_offsettable_operand (operands[0], 4); ++ } ++ } + else + latehalf[0] = operands[0]; + + if (optype1 == REGOP) +- latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); ++ { ++// printf( "move double dst: reg %d\n", REGNO (operands[0])); ++ if (0 && WORDS_BIG_ENDIAN) ++ { ++ latehalf[1] = operands[1]; ++ operands[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); ++ } ++ else ++ { ++ latehalf[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1); ++ } ++ } + else if (optype1 == OFFSOP) +- latehalf[1] = adj_offsettable_operand (operands[1], 4); ++ { ++// printf( "move double dst: mem\n"); ++ if (0 && WORDS_BIG_ENDIAN) ++ { ++ latehalf[1] = operands[1]; ++ operands[1] = adj_offsettable_operand (operands[1], 4); ++ } ++ else ++ { ++ latehalf[1] = adj_offsettable_operand (operands[1], 4); ++ } ++ } + else if (optype1 == CNSTOP) +- split_double (operands[1], &operands[1], &latehalf[1]); ++ { ++ if (BYTES_BIG_ENDIAN && GET_CODE (operands[1]) == CONST_DOUBLE) ++ { ++ split_double (operands[1], &operands[1], &latehalf[1]); ++ ++ // lcs: We have changed the data type from double to interger: ++ // we have to compensate for the different byte order ++ operands[1] = GEN_INT ( bswap_32 (INTVAL (operands[1]) ) ); ++ latehalf[1] = GEN_INT ( bswap_32 (INTVAL (latehalf[1]) ) ); ++ } ++ else ++ if (0 && WORDS_BIG_ENDIAN) ++ { ++ split_double (operands[1], &latehalf[1], &operands[1]); ++ } ++ else ++ { ++ split_double (operands[1], &operands[1], &latehalf[1]); ++ } ++ } + else + latehalf[1] = operands[1]; + } +@@ -1126,6 +1264,9 @@ + } + else + { ++ if (0 && WORDS_BIG_ENDIAN) ++ abort (); // lcs: I have no idea what to do here, so I abort! ++ + operands[1] = gen_rtx_MEM (DImode, latehalf[0]); + latehalf[1] = adj_offsettable_operand (operands[1], size-4); + } +@@ -1335,8 +1476,14 @@ + + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]); + REAL_VALUE_TO_TARGET_SINGLE (r, l); +- operands[1] = GEN_INT (l); ++ ++ if (BYTES_BIG_ENDIAN) // Compensate for bswap in singlemove_string(); ++ operands[1] = GEN_INT (bswap_32(l)); ++ else ++ operands[1] = GEN_INT (l); + } ++ else if (BYTES_BIG_ENDIAN) ++ abort (); + + return singlemove_string (operands); + } +@@ -3793,24 +3940,52 @@ + while (num--) + { + rtx op = operands[num]; ++ + if (! reload_completed) +- { ++ { + lo_half[num] = gen_lowpart (SImode, op); + hi_half[num] = gen_highpart (SImode, op); + } + else if (GET_CODE (op) == REG) + { +- lo_half[num] = gen_rtx_REG (SImode, REGNO (op)); +- hi_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); ++ if (WORDS_BIG_ENDIAN) ++ { ++ lo_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); ++ hi_half[num] = gen_rtx_REG (SImode, REGNO (op)); ++ } ++ else ++ { ++ lo_half[num] = gen_rtx_REG (SImode, REGNO (op)); ++ hi_half[num] = gen_rtx_REG (SImode, REGNO (op) + 1); ++ } + } + else if (CONSTANT_P (op)) +- split_double (op, &lo_half[num], &hi_half[num]); ++ { ++ if (WORDS_BIG_ENDIAN) ++ { ++ split_double (op, &hi_half[num], &lo_half[num]); ++ } ++ else ++ { ++ split_double (op, &lo_half[num], &hi_half[num]); ++ } ++ } + else if (offsettable_memref_p (op)) + { +- rtx lo_addr = XEXP (op, 0); +- rtx hi_addr = XEXP (adj_offsettable_operand (op, 4), 0); +- lo_half[num] = change_address (op, SImode, lo_addr); +- hi_half[num] = change_address (op, SImode, hi_addr); ++ if (WORDS_BIG_ENDIAN) ++ { ++ rtx lo_addr = XEXP (adj_offsettable_operand (op, 4), 0); ++ rtx hi_addr = XEXP (op, 0); ++ lo_half[num] = change_address (op, SImode, lo_addr); ++ hi_half[num] = change_address (op, SImode, hi_addr); ++ } ++ else ++ { ++ rtx lo_addr = XEXP (op, 0); ++ rtx hi_addr = XEXP (adj_offsettable_operand (op, 4), 0); ++ lo_half[num] = change_address (op, SImode, lo_addr); ++ hi_half[num] = change_address (op, SImode, hi_addr); ++ } + } + else + abort(); +@@ -4033,11 +4208,43 @@ + output_asm_insn (AS2 (mov%L0,%4,%0), operands); + else + { +- xops[0] = operands[0]; +- xops[1] = operands[4]; +- output_asm_insn (output_move_double (xops), xops); ++ if( WORDS_BIG_ENDIAN ) ++ { ++ if( REG_P ((operands[0]))) ++ { ++ // Move LITTLE ENDIAN double word ++ ++ xops[0] = gen_rtx_REG (SImode, REGNO (operands[0]) + 1); ++ xops[1] = operands[4]; ++ output_asm_insn (AS2 (mov%L0,%1,%0), xops); ++ ++ xops[0] = operands[0]; ++ xops[1] = adj_offsettable_operand (operands[4], 4); ++ output_asm_insn (AS2 (mov%L0,%1,%0), xops); ++ } ++ else ++ { ++ // Should not happen? ++ abort(); ++ } ++ } ++ else ++ { ++ xops[0] = operands[0]; ++ xops[1] = operands[4]; ++ output_asm_insn (output_move_double (xops), xops); ++ } + } + } ++ else ++ { ++ if (WORDS_BIG_ENDIAN) ++ { ++ // Can this ever happen? ++ ++ abort(); ++ } ++ } + + return AS1 (fldc%W2,%2); + } +@@ -5739,3 +5946,31 @@ + + return len; + } ++ ++/* Functions to convert between little and endian modes */ ++ ++short ++bswap_16( x ) ++ short x; ++{ ++ return ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)); ++} ++ ++long ++bswap_32( x ) ++ long x; ++{ ++ return ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | ++ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)); ++} ++ ++/* Return 1 is the operand is either a non-special register or ANY ++ constant integer. */ ++ ++int ++reg_or_cint_operand (op, mode) ++ register rtx op; ++ enum machine_mode mode; ++{ ++ return (GET_CODE (op) == CONST_INT || register_operand (op, mode)); ++} +--- gcc-2.95.3/gcc/config/i386/i386.h Sun Apr 25 13:43:49 1999 ++++ gcc/gcc/config/i386/i386.h Mon Sep 24 12:24:43 2001 +@@ -2766,6 +2766,9 @@ + extern int small_shift_operand (); + extern char *output_ashl (); + extern int memory_address_info (); ++extern short bswap_16 (); ++extern long bswap_32 (); ++extern int reg_or_cint_operand (); + + #ifdef NOTYET + extern struct rtx_def *copy_all_rtx (); --- gcc-2.95.3/gcc/config/i386/t-amithlon Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/i386/t-amithlon Sat Dec 1 14:23:42 2001 @@ -0,0 +1,28 @@ @@ -15469,7 +12724,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/t-amithlon gcc/gcc/config/i38 + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DA2IXDIR_PREFIX=\"$(prefix)/share/a2ixlibrary\" $(srcdir)/amigacollect2.c +### end-GG-local -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/xm-amithlon.h gcc/gcc/config/i386/xm-amithlon.h --- gcc-2.95.3/gcc/config/i386/xm-amithlon.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/i386/xm-amithlon.h Thu Sep 20 20:12:23 2001 @@ -0,0 +1,102 @@ @@ -15575,7 +12829,416 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/i386/xm-amithlon.h gcc/gcc/config/ + sprintf (filedst, ".%s.gxref", filesrc); \ + } \ +while (0) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/amigaos.c gcc/gcc/config/m68k/amigaos.c +--- gcc-2.95.3/gcc/config.in Fri Mar 16 15:13:48 2001 ++++ gcc/gcc/config.in Fri Nov 2 10:39:24 2001 +@@ -130,237 +130,267 @@ + /* Define to the version of the distribution. */ + #undef VERSION + +-/* Define if using alloca.c. */ +-#undef C_ALLOCA +- +-/* Define to empty if the keyword does not work. */ +-#undef const + +-/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. +- This function is required for alloca.c support on those systems. */ ++/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP ++ systems. This function is required for `alloca.c' support on those systems. ++ */ + #undef CRAY_STACKSEG_END + +-/* Define if you have alloca, as a function or macro. */ ++/* Define if using `alloca.c'. */ ++#undef C_ALLOCA ++ ++/* Define if you have `alloca', as a function or macro. */ + #undef HAVE_ALLOCA + +-/* Define if you have and it should be used (not on Ultrix). */ ++/* Define if you have and it should be used (not on Ultrix). */ + #undef HAVE_ALLOCA_H + +-/* Define if you don't have vprintf but do have _doprnt. */ +-#undef HAVE_DOPRNT +- +-/* Define if you have a working `mmap' system call. */ +-#undef HAVE_MMAP +- +-/* Define if you have that is POSIX.1 compatible. */ +-#undef HAVE_SYS_WAIT_H +- +-/* Define if you have . */ +-#undef HAVE_VFORK_H +- +-/* Define if you have the vprintf function. */ +-#undef HAVE_VPRINTF +- +-/* Define as __inline if that's what the C compiler calls it. */ +-#undef inline +- +-/* Define to `long' if doesn't define. */ +-#undef off_t +- +-/* Define to `int' if doesn't define. */ +-#undef pid_t +- +-/* Define to `unsigned' if doesn't define. */ +-#undef size_t +- +-/* If using the C implementation of alloca, define if you know the +- direction of stack growth for your system; otherwise it will be +- automatically deduced at run-time. +- STACK_DIRECTION > 0 => grows toward higher addresses +- STACK_DIRECTION < 0 => grows toward lower addresses +- STACK_DIRECTION = 0 => direction of growth unknown +- */ +-#undef STACK_DIRECTION +- +-/* Define if you have the ANSI C header files. */ +-#undef STDC_HEADERS +- +-/* Define if `sys_siglist' is declared by . */ +-#undef SYS_SIGLIST_DECLARED +- +-/* Define if you can safely include both and . */ +-#undef TIME_WITH_SYS_TIME +- +-/* Define vfork as fork if vfork does not work. */ +-#undef vfork +- +-/* Define if you have the __argz_count function. */ +-#undef HAVE___ARGZ_COUNT +- +-/* Define if you have the __argz_next function. */ +-#undef HAVE___ARGZ_NEXT +- +-/* Define if you have the __argz_stringify function. */ +-#undef HAVE___ARGZ_STRINGIFY ++/* Define if you have the header file. */ ++#undef HAVE_ARGZ_H + +-/* Define if you have the atoll function. */ ++/* Define if you have the `atoll' function. */ + #undef HAVE_ATOLL + +-/* Define if you have the atoq function. */ ++/* Define if you have the `atoq' function. */ + #undef HAVE_ATOQ + +-/* Define if you have the bcmp function. */ ++/* Define if you have the `bcmp' function. */ + #undef HAVE_BCMP + +-/* Define if you have the bcopy function. */ ++/* Define if you have the `bcopy' function. */ + #undef HAVE_BCOPY + +-/* Define if you have the bsearch function. */ ++/* Define if you have the `bsearch' function. */ + #undef HAVE_BSEARCH + +-/* Define if you have the bzero function. */ ++/* Define if you have the `bzero' function. */ + #undef HAVE_BZERO + +-/* Define if you have the dcgettext function. */ ++/* Define if you have the `dcgettext' function. */ + #undef HAVE_DCGETTEXT + +-/* Define if you have the fputc_unlocked function. */ ++/* Define if you have the header file. */ ++#undef HAVE_DIRECT_H ++ ++/* Define if you don't have `vprintf' but do have `_doprnt.' */ ++#undef HAVE_DOPRNT ++ ++/* Define if you have the header file. */ ++#undef HAVE_FCNTL_H ++ ++/* Define if you have the `fork' function. */ ++#undef HAVE_FORK ++ ++/* Define if you have the `fputc_unlocked' function. */ + #undef HAVE_FPUTC_UNLOCKED + +-/* Define if you have the fputs_unlocked function. */ ++/* Define if you have the `fputs_unlocked' function. */ + #undef HAVE_FPUTS_UNLOCKED + +-/* Define if you have the getcwd function. */ ++/* Define if you have the `getcwd' function. */ + #undef HAVE_GETCWD + +-/* Define if you have the getpagesize function. */ ++/* Define if you have the `getpagesize' function. */ + #undef HAVE_GETPAGESIZE + +-/* Define if you have the getrlimit function. */ ++/* Define if you have the `getrlimit' function. */ + #undef HAVE_GETRLIMIT + +-/* Define if you have the gettimeofday function. */ ++/* Define if you have the `gettimeofday' function. */ + #undef HAVE_GETTIMEOFDAY + +-/* Define if you have the index function. */ ++/* Define if you have the `index' function. */ + #undef HAVE_INDEX + +-/* Define if you have the isascii function. */ ++/* Define if you have the header file. */ ++#undef HAVE_INTTYPES_H ++ ++/* Define if you have the `isascii' function. */ + #undef HAVE_ISASCII + +-/* Define if you have the kill function. */ ++/* Define if you have the `kill' function. */ + #undef HAVE_KILL + +-/* Define if you have the munmap function. */ ++/* Define if you have the `i' library (-li). */ ++#undef HAVE_LIBI ++ ++/* Define if you have the header file. */ ++#undef HAVE_LIMITS_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_LOCALE_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_MALLOC_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_MEMORY_H ++ ++/* Define if you have a working `mmap' system call. */ ++#undef HAVE_MMAP ++ ++/* Define if you have the `munmap' function. */ + #undef HAVE_MUNMAP + +-/* Define if you have the popen function. */ ++/* Define if you have the header file. */ ++#undef HAVE_NL_TYPES_H ++ ++/* Define if you have the `popen' function. */ + #undef HAVE_POPEN + +-/* Define if you have the putc_unlocked function. */ ++/* Define if you have the `putc_unlocked' function. */ + #undef HAVE_PUTC_UNLOCKED + +-/* Define if you have the putenv function. */ ++/* Define if you have the `putenv' function. */ + #undef HAVE_PUTENV + +-/* Define if you have the rindex function. */ ++/* Define if you have the `rindex' function. */ + #undef HAVE_RINDEX + +-/* Define if you have the setenv function. */ ++/* Define if you have the `setenv' function. */ + #undef HAVE_SETENV + +-/* Define if you have the setlocale function. */ ++/* Define if you have the `setlocale' function. */ + #undef HAVE_SETLOCALE + +-/* Define if you have the setrlimit function. */ ++/* Define if you have the `setrlimit' function. */ + #undef HAVE_SETRLIMIT + +-/* Define if you have the stpcpy function. */ ++/* Define if you have the header file. */ ++#undef HAVE_STAB_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STDDEF_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STDINT_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STDLIB_H ++ ++/* Define if you have the `stpcpy' function. */ + #undef HAVE_STPCPY + +-/* Define if you have the strcasecmp function. */ ++/* Define if you have the `strcasecmp' function. */ + #undef HAVE_STRCASECMP + +-/* Define if you have the strchr function. */ ++/* Define if you have the `strchr' function. */ + #undef HAVE_STRCHR + +-/* Define if you have the strdup function. */ ++/* Define if you have the `strdup' function. */ + #undef HAVE_STRDUP + +-/* Define if you have the strerror function. */ ++/* Define if you have the `strerror' function. */ + #undef HAVE_STRERROR + +-/* Define if you have the strrchr function. */ ++/* Define if you have the header file. */ ++#undef HAVE_STRINGS_H ++ ++/* Define if you have the header file. */ ++#undef HAVE_STRING_H ++ ++/* Define if you have the `strrchr' function. */ + #undef HAVE_STRRCHR + +-/* Define if you have the strsignal function. */ ++/* Define if you have the `strsignal' function. */ + #undef HAVE_STRSIGNAL + +-/* Define if you have the strtoul function. */ ++/* Define if you have the `strtoul' function. */ + #undef HAVE_STRTOUL + +-/* Define if you have the sysconf function. */ ++/* Define if you have the `sysconf' function. */ + #undef HAVE_SYSCONF + +-/* Define if you have the header file. */ +-#undef HAVE_ARGZ_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_FILE_H + +-/* Define if you have the header file. */ +-#undef HAVE_DIRECT_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_PARAM_H + +-/* Define if you have the header file. */ +-#undef HAVE_FCNTL_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_RESOURCE_H + +-/* Define if you have the header file. */ +-#undef HAVE_LIMITS_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_STAT_H + +-/* Define if you have the header file. */ +-#undef HAVE_LOCALE_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_TIMES_H + +-/* Define if you have the header file. */ +-#undef HAVE_MALLOC_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_TIME_H + +-/* Define if you have the header file. */ +-#undef HAVE_NL_TYPES_H ++/* Define if you have the header file. */ ++#undef HAVE_SYS_TYPES_H + +-/* Define if you have the header file. */ +-#undef HAVE_STAB_H ++/* Define if you have that is POSIX.1 compatible. */ ++#undef HAVE_SYS_WAIT_H + +-/* Define if you have the header file. */ +-#undef HAVE_STDDEF_H ++/* Define if you have the header file. */ ++#undef HAVE_TIME_H + +-/* Define if you have the header file. */ +-#undef HAVE_STDLIB_H ++/* Define if you have the header file. */ ++#undef HAVE_UNISTD_H + +-/* Define if you have the header file. */ +-#undef HAVE_STRING_H ++/* Define if you have the `vfork' function. */ ++#undef HAVE_VFORK + +-/* Define if you have the header file. */ +-#undef HAVE_STRINGS_H ++/* Define if you have the header file. */ ++#undef HAVE_VFORK_H + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_FILE_H ++/* Define if you have the `vprintf' function. */ ++#undef HAVE_VPRINTF + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_PARAM_H ++/* Define if `fork' works. */ ++#undef HAVE_WORKING_FORK + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_RESOURCE_H ++/* Define if `vfork' works. */ ++#undef HAVE_WORKING_VFORK + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_STAT_H ++/* Define if you have the `__argz_count' function. */ ++#undef HAVE___ARGZ_COUNT + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_TIME_H ++/* Define if you have the `__argz_next' function. */ ++#undef HAVE___ARGZ_NEXT + +-/* Define if you have the header file. */ +-#undef HAVE_SYS_TIMES_H ++/* Define if you have the `__argz_stringify' function. */ ++#undef HAVE___ARGZ_STRINGIFY + +-/* Define if you have the header file. */ +-#undef HAVE_TIME_H ++/* If using the C implementation of alloca, define if you know the ++ direction of stack growth for your system; otherwise it will be ++ automatically deduced at run-time. ++ STACK_DIRECTION > 0 => grows toward higher addresses ++ STACK_DIRECTION < 0 => grows toward lower addresses ++ STACK_DIRECTION = 0 => direction of growth unknown */ ++#undef STACK_DIRECTION + +-/* Define if you have the header file. */ +-#undef HAVE_UNISTD_H ++/* Define if you have the ANSI C header files. */ ++#undef STDC_HEADERS + +-/* Define if you have the i library (-li). */ +-#undef HAVE_LIBI ++/* Define if `sys_siglist' is declared by or . */ ++#undef SYS_SIGLIST_DECLARED ++ ++/* Define if you can safely include both and . */ ++#undef TIME_WITH_SYS_TIME ++ ++/* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'. ++ */ ++#undef YYTEXT_POINTER ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++#undef const ++ ++/* Define as `__inline' if that's what the C compiler calls it, or to nothing ++ if it is not supported. */ ++#undef inline ++ ++/* Define to `long' if does not define. */ ++#undef off_t ++ ++/* Define to `int' if does not define. */ ++#undef pid_t ++ ++/* Define to `unsigned' if does not define. */ ++#undef size_t ++ ++/* Define as `fork' if `vfork' does not work. */ ++#undef vfork --- gcc-2.95.3/gcc/config/m68k/amigaos.c Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/m68k/amigaos.c Thu Sep 27 19:35:54 2001 @@ -0,0 +1,419 @@ @@ -15998,7 +13661,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/amigaos.c gcc/gcc/config/m68k +} + +/* end-GG-local */ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/amigaos.h gcc/gcc/config/m68k/amigaos.h --- gcc-2.95.3/gcc/config/m68k/amigaos.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/m68k/amigaos.h Wed Dec 19 19:24:12 2001 @@ -0,0 +1,633 @@ @@ -16635,7 +14297,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/amigaos.h gcc/gcc/config/m68k + +#define COLLECT2_POSTLINK_HOOK(OUTPUT_FILE) amigaos_postlink_hook(OUTPUT_FILE) +/* end-GG-local */ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.c gcc/gcc/config/m68k/m68k.c --- gcc-2.95.3/gcc/config/m68k/m68k.c Mon Aug 2 06:51:08 1999 +++ gcc/gcc/config/m68k/m68k.c Thu Sep 27 19:35:54 2001 @@ -63,6 +63,8 @@ @@ -17069,7 +14730,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.c gcc/gcc/config/m68k/m6 char * output_andsi3 (operands) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.h gcc/gcc/config/m68k/m68k.h --- gcc-2.95.3/gcc/config/m68k/m68k.h Thu Jan 25 15:03:34 2001 +++ gcc/gcc/config/m68k/m68k.h Thu Sep 27 19:35:54 2001 @@ -68,10 +68,8 @@ @@ -17295,7 +14955,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.h gcc/gcc/config/m68k/m6 extern int m68k_last_compare_had_fp_operands; /* Functions from m68k.c used in macros. */ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.md gcc/gcc/config/m68k/m68k.md --- gcc-2.95.3/gcc/config/m68k/m68k.md Thu Aug 5 08:22:05 1999 +++ gcc/gcc/config/m68k/m68k.md Thu Sep 27 19:35:54 2001 @@ -6799,7 +6799,7 @@ @@ -17397,7 +15056,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/m68k.md gcc/gcc/config/m68k/m + ALTERNATE_ALLOCATE_STACK(operands); +#endif +}") -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/t-amigaos gcc/gcc/config/m68k/t-amigaos --- gcc-2.95.3/gcc/config/m68k/t-amigaos Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/m68k/t-amigaos Thu Sep 27 19:35:54 2001 @@ -0,0 +1,90 @@ @@ -17491,7 +15149,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/t-amigaos gcc/gcc/config/m68k + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DA2IXDIR_PREFIX=\"$(prefix)/share/a2ixlibrary\" $(srcdir)/amigacollect2.c +### end-GG-local -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/x-amigaos gcc/gcc/config/m68k/x-amigaos --- gcc-2.95.3/gcc/config/m68k/x-amigaos Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/m68k/x-amigaos Thu Sep 27 19:35:54 2001 @@ -0,0 +1,77 @@ @@ -17572,7 +15229,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/x-amigaos gcc/gcc/config/m68k + $(INSTALL_DATA) gcc-amigaos.guide $(guidedir) + -chmod a-x $(infodir)/gcc-amigaos.info* $(guidedir)/gcc-amigaos.guide +### end-GG-local -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/xm-amigaos.h gcc/gcc/config/m68k/xm-amigaos.h --- gcc-2.95.3/gcc/config/m68k/xm-amigaos.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/m68k/xm-amigaos.h Thu Sep 27 19:35:54 2001 @@ -0,0 +1,98 @@ @@ -17674,7 +15330,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/m68k/xm-amigaos.h gcc/gcc/config/m + sprintf (filedst, ".%s.gxref", filesrc); \ + } \ +while (0) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/morphos.c gcc/gcc/config/rs6000/morphos.c --- gcc-2.95.3/gcc/config/rs6000/morphos.c Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/rs6000/morphos.c Thu Sep 27 19:35:54 2001 @@ -0,0 +1,307 @@ @@ -17985,7 +15640,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/morphos.c gcc/gcc/config/rs + return XEXP (block, 0); +} + -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/morphos.h gcc/gcc/config/rs6000/morphos.h --- gcc-2.95.3/gcc/config/rs6000/morphos.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/rs6000/morphos.h Thu Dec 20 00:41:54 2001 @@ -0,0 +1,398 @@ @@ -18387,7 +16041,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/morphos.h gcc/gcc/config/rs +extern void morphos_setup_incoming_varargs (); +extern struct rtx_def *morphos_expand_builtin_saveregs (); + -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.c gcc/gcc/config/rs6000/rs6000.c --- gcc-2.95.3/gcc/config/rs6000/rs6000.c Thu Jan 25 15:03:34 2001 +++ gcc/gcc/config/rs6000/rs6000.c Thu Sep 27 19:35:54 2001 @@ -405,6 +405,7 @@ @@ -18534,7 +16187,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.c gcc/gcc/config/rs6 || (len == sizeof (".sdata2")-1 && strcmp (name, ".sdata2") == 0) || (len == sizeof (".sbss")-1 && strcmp (name, ".sbss") == 0) || (len == sizeof (".sbss2")-1 && strcmp (name, ".sbss2") == 0) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.h gcc/gcc/config/rs6000/rs6000.h --- gcc-2.95.3/gcc/config/rs6000/rs6000.h Wed Mar 22 19:54:05 2000 +++ gcc/gcc/config/rs6000/rs6000.h Thu Sep 27 19:35:54 2001 @@ -3276,6 +3276,7 @@ @@ -18545,7 +16197,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.h gcc/gcc/config/rs6 extern void init_cumulative_args (); extern void function_arg_advance (); extern int function_arg_boundary (); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.md gcc/gcc/config/rs6000/rs6000.md --- gcc-2.95.3/gcc/config/rs6000/rs6000.md Thu Jan 25 15:03:35 2001 +++ gcc/gcc/config/rs6000/rs6000.md Thu Sep 27 19:35:54 2001 @@ -5828,14 +5828,18 @@ @@ -18595,7 +16246,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/rs6000.md gcc/gcc/config/rs && (GET_CODE (operands[1]) != CONST_INT || INTVAL (operands[1]) > 4096)) { rtx tmp = gen_reg_rtx (Pmode); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/sysv4.h gcc/gcc/config/rs6000/sysv4.h --- gcc-2.95.3/gcc/config/rs6000/sysv4.h Thu Jan 25 15:03:37 2001 +++ gcc/gcc/config/rs6000/sysv4.h Thu Sep 27 19:35:54 2001 @@ -24,7 +24,8 @@ @@ -18617,7 +16267,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/sysv4.h gcc/gcc/config/rs60 else \ error ("Bad value for -msdata=%s", rs6000_sdata_name); \ } \ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/t-morphos gcc/gcc/config/rs6000/t-morphos --- gcc-2.95.3/gcc/config/rs6000/t-morphos Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/rs6000/t-morphos Thu Sep 27 19:35:54 2001 @@ -0,0 +1,63 @@ @@ -18684,49 +16333,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/t-morphos gcc/gcc/config/rs + -DA2IXDIR_PREFIX=\"$(prefix)/share/a2ixlibrary\" $(srcdir)/morphoscollect2.c +### end-GG-local + -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/x-morphos gcc/gcc/config/rs6000/x-morphos ---- gcc-2.95.3/gcc/config/rs6000/x-morphos Thu Jan 1 01:00:00 1970 -+++ gcc/gcc/config/rs6000/x-morphos Thu Sep 27 19:35:54 2001 -@@ -0,0 +1,38 @@ -+# Note: It doesn't do any good to try to define prefix or local_prefix -+# in the host overrides because configure will just change them back. -+# You either have to give an appropriate option to configure or live with -+# an Amiga specific patch to configure. See the note in configure. -fnf -+ -+# Building under AmigaOS almost certainly requires an already working gcc. -+# To bootstrap without "-pipe" do "make PIPE=". -+ -+CC = gcc $(PIPE) -+ -+# Disable -pipe for now since I had problems bootstrapping gcc 2.5.5 with -+# it. (fnf) -+#PIPE = -pipe -+ -+# Allow the user to override the default host optimization with gcc, or if the -+# host compiler is not gcc and doesn't understand -O. -+ -+X_OPTIMIZE = -O2 -+ -+# The standard additional host flags for the compiler. -+ -+X_CFLAGS = $(X_OPTIMIZE) -mstackextend -+ -+# Man pages get a wierd suffix... -+ -+manext = .0 -+ -+# We really shouldn't specify CFLAGS from here, but there's no other way -+# to get rid of the `-g' indoctrinated by Makefile.in. Note this becomes -+# part of both the host compilation CFLAGS and the target compilation -+# CFLAGS. -+ -+CFLAGS = -+ -+# Ranlib does exist, but may not be in a path where the default RANLIB_TEST -+# expects it, so just force it to true. -+ -+RANLIB_TEST = true -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/xm-morphos.h gcc/gcc/config/rs6000/xm-morphos.h --- gcc-2.95.3/gcc/config/rs6000/xm-morphos.h Thu Jan 1 01:00:00 1970 +++ gcc/gcc/config/rs6000/xm-morphos.h Thu Sep 27 19:35:54 2001 @@ -0,0 +1,255 @@ @@ -18985,418 +16591,47 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/config/rs6000/xm-morphos.h gcc/gcc/config +/* #defined AMIGA_STACK_CHECKING */ + +#endif -diff -ruN --exclude=CVS gcc-2.95.3/gcc/config.in gcc/gcc/config.in ---- gcc-2.95.3/gcc/config.in Fri Mar 16 15:13:48 2001 -+++ gcc/gcc/config.in Fri Nov 2 10:39:24 2001 -@@ -130,237 +130,267 @@ - /* Define to the version of the distribution. */ - #undef VERSION - --/* Define if using alloca.c. */ --#undef C_ALLOCA -- --/* Define to empty if the keyword does not work. */ --#undef const - --/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. -- This function is required for alloca.c support on those systems. */ -+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP -+ systems. This function is required for `alloca.c' support on those systems. -+ */ - #undef CRAY_STACKSEG_END - --/* Define if you have alloca, as a function or macro. */ -+/* Define if using `alloca.c'. */ -+#undef C_ALLOCA +--- gcc-2.95.3/gcc/config/rs6000/x-morphos Thu Jan 1 01:00:00 1970 ++++ gcc/gcc/config/rs6000/x-morphos Thu Sep 27 19:35:54 2001 +@@ -0,0 +1,38 @@ ++# Note: It doesn't do any good to try to define prefix or local_prefix ++# in the host overrides because configure will just change them back. ++# You either have to give an appropriate option to configure or live with ++# an Amiga specific patch to configure. See the note in configure. -fnf + -+/* Define if you have `alloca', as a function or macro. */ - #undef HAVE_ALLOCA - --/* Define if you have and it should be used (not on Ultrix). */ -+/* Define if you have and it should be used (not on Ultrix). */ - #undef HAVE_ALLOCA_H - --/* Define if you don't have vprintf but do have _doprnt. */ --#undef HAVE_DOPRNT -- --/* Define if you have a working `mmap' system call. */ --#undef HAVE_MMAP -- --/* Define if you have that is POSIX.1 compatible. */ --#undef HAVE_SYS_WAIT_H -- --/* Define if you have . */ --#undef HAVE_VFORK_H -- --/* Define if you have the vprintf function. */ --#undef HAVE_VPRINTF -- --/* Define as __inline if that's what the C compiler calls it. */ --#undef inline -- --/* Define to `long' if doesn't define. */ --#undef off_t -- --/* Define to `int' if doesn't define. */ --#undef pid_t -- --/* Define to `unsigned' if doesn't define. */ --#undef size_t -- --/* If using the C implementation of alloca, define if you know the -- direction of stack growth for your system; otherwise it will be -- automatically deduced at run-time. -- STACK_DIRECTION > 0 => grows toward higher addresses -- STACK_DIRECTION < 0 => grows toward lower addresses -- STACK_DIRECTION = 0 => direction of growth unknown -- */ --#undef STACK_DIRECTION -- --/* Define if you have the ANSI C header files. */ --#undef STDC_HEADERS -- --/* Define if `sys_siglist' is declared by . */ --#undef SYS_SIGLIST_DECLARED -- --/* Define if you can safely include both and . */ --#undef TIME_WITH_SYS_TIME -- --/* Define vfork as fork if vfork does not work. */ --#undef vfork -- --/* Define if you have the __argz_count function. */ --#undef HAVE___ARGZ_COUNT -- --/* Define if you have the __argz_next function. */ --#undef HAVE___ARGZ_NEXT -- --/* Define if you have the __argz_stringify function. */ --#undef HAVE___ARGZ_STRINGIFY -+/* Define if you have the header file. */ -+#undef HAVE_ARGZ_H - --/* Define if you have the atoll function. */ -+/* Define if you have the `atoll' function. */ - #undef HAVE_ATOLL - --/* Define if you have the atoq function. */ -+/* Define if you have the `atoq' function. */ - #undef HAVE_ATOQ - --/* Define if you have the bcmp function. */ -+/* Define if you have the `bcmp' function. */ - #undef HAVE_BCMP - --/* Define if you have the bcopy function. */ -+/* Define if you have the `bcopy' function. */ - #undef HAVE_BCOPY - --/* Define if you have the bsearch function. */ -+/* Define if you have the `bsearch' function. */ - #undef HAVE_BSEARCH - --/* Define if you have the bzero function. */ -+/* Define if you have the `bzero' function. */ - #undef HAVE_BZERO - --/* Define if you have the dcgettext function. */ -+/* Define if you have the `dcgettext' function. */ - #undef HAVE_DCGETTEXT - --/* Define if you have the fputc_unlocked function. */ -+/* Define if you have the header file. */ -+#undef HAVE_DIRECT_H ++# Building under AmigaOS almost certainly requires an already working gcc. ++# To bootstrap without "-pipe" do "make PIPE=". + -+/* Define if you don't have `vprintf' but do have `_doprnt.' */ -+#undef HAVE_DOPRNT ++CC = gcc $(PIPE) + -+/* Define if you have the header file. */ -+#undef HAVE_FCNTL_H ++# Disable -pipe for now since I had problems bootstrapping gcc 2.5.5 with ++# it. (fnf) ++#PIPE = -pipe + -+/* Define if you have the `fork' function. */ -+#undef HAVE_FORK ++# Allow the user to override the default host optimization with gcc, or if the ++# host compiler is not gcc and doesn't understand -O. + -+/* Define if you have the `fputc_unlocked' function. */ - #undef HAVE_FPUTC_UNLOCKED - --/* Define if you have the fputs_unlocked function. */ -+/* Define if you have the `fputs_unlocked' function. */ - #undef HAVE_FPUTS_UNLOCKED - --/* Define if you have the getcwd function. */ -+/* Define if you have the `getcwd' function. */ - #undef HAVE_GETCWD - --/* Define if you have the getpagesize function. */ -+/* Define if you have the `getpagesize' function. */ - #undef HAVE_GETPAGESIZE - --/* Define if you have the getrlimit function. */ -+/* Define if you have the `getrlimit' function. */ - #undef HAVE_GETRLIMIT - --/* Define if you have the gettimeofday function. */ -+/* Define if you have the `gettimeofday' function. */ - #undef HAVE_GETTIMEOFDAY - --/* Define if you have the index function. */ -+/* Define if you have the `index' function. */ - #undef HAVE_INDEX - --/* Define if you have the isascii function. */ -+/* Define if you have the header file. */ -+#undef HAVE_INTTYPES_H ++X_OPTIMIZE = -O2 + -+/* Define if you have the `isascii' function. */ - #undef HAVE_ISASCII - --/* Define if you have the kill function. */ -+/* Define if you have the `kill' function. */ - #undef HAVE_KILL - --/* Define if you have the munmap function. */ -+/* Define if you have the `i' library (-li). */ -+#undef HAVE_LIBI ++# The standard additional host flags for the compiler. + -+/* Define if you have the header file. */ -+#undef HAVE_LIMITS_H ++X_CFLAGS = $(X_OPTIMIZE) -mstackextend + -+/* Define if you have the header file. */ -+#undef HAVE_LOCALE_H ++# Man pages get a wierd suffix... + -+/* Define if you have the header file. */ -+#undef HAVE_MALLOC_H ++manext = .0 + -+/* Define if you have the header file. */ -+#undef HAVE_MEMORY_H ++# We really shouldn't specify CFLAGS from here, but there's no other way ++# to get rid of the `-g' indoctrinated by Makefile.in. Note this becomes ++# part of both the host compilation CFLAGS and the target compilation ++# CFLAGS. + -+/* Define if you have a working `mmap' system call. */ -+#undef HAVE_MMAP ++CFLAGS = + -+/* Define if you have the `munmap' function. */ - #undef HAVE_MUNMAP - --/* Define if you have the popen function. */ -+/* Define if you have the header file. */ -+#undef HAVE_NL_TYPES_H ++# Ranlib does exist, but may not be in a path where the default RANLIB_TEST ++# expects it, so just force it to true. + -+/* Define if you have the `popen' function. */ - #undef HAVE_POPEN - --/* Define if you have the putc_unlocked function. */ -+/* Define if you have the `putc_unlocked' function. */ - #undef HAVE_PUTC_UNLOCKED - --/* Define if you have the putenv function. */ -+/* Define if you have the `putenv' function. */ - #undef HAVE_PUTENV - --/* Define if you have the rindex function. */ -+/* Define if you have the `rindex' function. */ - #undef HAVE_RINDEX - --/* Define if you have the setenv function. */ -+/* Define if you have the `setenv' function. */ - #undef HAVE_SETENV - --/* Define if you have the setlocale function. */ -+/* Define if you have the `setlocale' function. */ - #undef HAVE_SETLOCALE - --/* Define if you have the setrlimit function. */ -+/* Define if you have the `setrlimit' function. */ - #undef HAVE_SETRLIMIT - --/* Define if you have the stpcpy function. */ -+/* Define if you have the header file. */ -+#undef HAVE_STAB_H -+ -+/* Define if you have the header file. */ -+#undef HAVE_STDDEF_H -+ -+/* Define if you have the header file. */ -+#undef HAVE_STDINT_H -+ -+/* Define if you have the header file. */ -+#undef HAVE_STDLIB_H -+ -+/* Define if you have the `stpcpy' function. */ - #undef HAVE_STPCPY - --/* Define if you have the strcasecmp function. */ -+/* Define if you have the `strcasecmp' function. */ - #undef HAVE_STRCASECMP - --/* Define if you have the strchr function. */ -+/* Define if you have the `strchr' function. */ - #undef HAVE_STRCHR - --/* Define if you have the strdup function. */ -+/* Define if you have the `strdup' function. */ - #undef HAVE_STRDUP - --/* Define if you have the strerror function. */ -+/* Define if you have the `strerror' function. */ - #undef HAVE_STRERROR - --/* Define if you have the strrchr function. */ -+/* Define if you have the header file. */ -+#undef HAVE_STRINGS_H -+ -+/* Define if you have the header file. */ -+#undef HAVE_STRING_H -+ -+/* Define if you have the `strrchr' function. */ - #undef HAVE_STRRCHR - --/* Define if you have the strsignal function. */ -+/* Define if you have the `strsignal' function. */ - #undef HAVE_STRSIGNAL - --/* Define if you have the strtoul function. */ -+/* Define if you have the `strtoul' function. */ - #undef HAVE_STRTOUL - --/* Define if you have the sysconf function. */ -+/* Define if you have the `sysconf' function. */ - #undef HAVE_SYSCONF - --/* Define if you have the header file. */ --#undef HAVE_ARGZ_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_FILE_H - --/* Define if you have the header file. */ --#undef HAVE_DIRECT_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_PARAM_H - --/* Define if you have the header file. */ --#undef HAVE_FCNTL_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_RESOURCE_H - --/* Define if you have the header file. */ --#undef HAVE_LIMITS_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_STAT_H - --/* Define if you have the header file. */ --#undef HAVE_LOCALE_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_TIMES_H - --/* Define if you have the header file. */ --#undef HAVE_MALLOC_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_TIME_H - --/* Define if you have the header file. */ --#undef HAVE_NL_TYPES_H -+/* Define if you have the header file. */ -+#undef HAVE_SYS_TYPES_H - --/* Define if you have the header file. */ --#undef HAVE_STAB_H -+/* Define if you have that is POSIX.1 compatible. */ -+#undef HAVE_SYS_WAIT_H - --/* Define if you have the header file. */ --#undef HAVE_STDDEF_H -+/* Define if you have the header file. */ -+#undef HAVE_TIME_H - --/* Define if you have the header file. */ --#undef HAVE_STDLIB_H -+/* Define if you have the header file. */ -+#undef HAVE_UNISTD_H - --/* Define if you have the header file. */ --#undef HAVE_STRING_H -+/* Define if you have the `vfork' function. */ -+#undef HAVE_VFORK - --/* Define if you have the header file. */ --#undef HAVE_STRINGS_H -+/* Define if you have the header file. */ -+#undef HAVE_VFORK_H - --/* Define if you have the header file. */ --#undef HAVE_SYS_FILE_H -+/* Define if you have the `vprintf' function. */ -+#undef HAVE_VPRINTF - --/* Define if you have the header file. */ --#undef HAVE_SYS_PARAM_H -+/* Define if `fork' works. */ -+#undef HAVE_WORKING_FORK - --/* Define if you have the header file. */ --#undef HAVE_SYS_RESOURCE_H -+/* Define if `vfork' works. */ -+#undef HAVE_WORKING_VFORK - --/* Define if you have the header file. */ --#undef HAVE_SYS_STAT_H -+/* Define if you have the `__argz_count' function. */ -+#undef HAVE___ARGZ_COUNT - --/* Define if you have the header file. */ --#undef HAVE_SYS_TIME_H -+/* Define if you have the `__argz_next' function. */ -+#undef HAVE___ARGZ_NEXT - --/* Define if you have the header file. */ --#undef HAVE_SYS_TIMES_H -+/* Define if you have the `__argz_stringify' function. */ -+#undef HAVE___ARGZ_STRINGIFY - --/* Define if you have the header file. */ --#undef HAVE_TIME_H -+/* If using the C implementation of alloca, define if you know the -+ direction of stack growth for your system; otherwise it will be -+ automatically deduced at run-time. -+ STACK_DIRECTION > 0 => grows toward higher addresses -+ STACK_DIRECTION < 0 => grows toward lower addresses -+ STACK_DIRECTION = 0 => direction of growth unknown */ -+#undef STACK_DIRECTION - --/* Define if you have the header file. */ --#undef HAVE_UNISTD_H -+/* Define if you have the ANSI C header files. */ -+#undef STDC_HEADERS - --/* Define if you have the i library (-li). */ --#undef HAVE_LIBI -+/* Define if `sys_siglist' is declared by or . */ -+#undef SYS_SIGLIST_DECLARED -+ -+/* Define if you can safely include both and . */ -+#undef TIME_WITH_SYS_TIME -+ -+/* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'. -+ */ -+#undef YYTEXT_POINTER -+ -+/* Define to empty if `const' does not conform to ANSI C. */ -+#undef const -+ -+/* Define as `__inline' if that's what the C compiler calls it, or to nothing -+ if it is not supported. */ -+#undef inline -+ -+/* Define to `long' if does not define. */ -+#undef off_t -+ -+/* Define to `int' if does not define. */ -+#undef pid_t -+ -+/* Define to `unsigned' if does not define. */ -+#undef size_t -+ -+/* Define as `fork' if `vfork' does not work. */ -+#undef vfork -diff -ruN --exclude=CVS gcc-2.95.3/gcc/configure gcc/gcc/configure ++RANLIB_TEST = true --- gcc-2.95.3/gcc/configure Fri Mar 16 15:13:48 2001 +++ gcc/gcc/configure Wed Dec 5 23:55:03 2001 @@ -1,85 +1,155 @@ @@ -30208,7 +27443,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/configure gcc/gcc/configure + $ac_cs_success || { (exit 1); exit 1; } +fi -diff -ruN --exclude=CVS gcc-2.95.3/gcc/configure.in gcc/gcc/configure.in --- gcc-2.95.3/gcc/configure.in Thu Jan 25 15:03:02 2001 +++ gcc/gcc/configure.in Wed Dec 5 23:54:53 2001 @@ -491,7 +491,7 @@ @@ -30300,25 +27534,245 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/configure.in gcc/gcc/configure.in target_cpu_default2=3 ;; alpha*-*-*) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/cp/tinfo.s gcc/gcc/cp/tinfo.s ---- gcc-2.95.3/gcc/cp/tinfo.s Thu Jan 1 01:00:00 1970 -+++ gcc/gcc/cp/tinfo.s Sun Jun 30 11:49:04 2002 -@@ -0,0 +1,14 @@ -+ .file "tinfo.cc" -+gcc2_compiled.: -+ .globl os -+ .section ".sbss","aw",@nobits -+ .align 2 -+os: -+ .space 4 -+ .size os,4 -+ .globl ns -+ .align 2 -+ns: -+ .space 4 -+ .size ns,4 -+ .ident "GCC: (GNU) 2.95.3 20010315 (release/lcs-2002-04-12)" -diff -ruN --exclude=CVS gcc-2.95.3/gcc/cppfiles.c gcc/gcc/cppfiles.c +--- gcc-2.95.3/gcc/c-parse.in Tue Apr 27 00:35:50 1999 ++++ gcc/gcc/c-parse.in Thu Sep 27 19:35:53 2001 +@@ -2329,56 +2329,63 @@ + + parms: + parm +- { push_parm_decl ($1); } ++/* begin-GG-local: explicit register specification for parameters */ ++ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } + | parms ',' parm +- { push_parm_decl ($3); } ++ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } + ; + + /* A single parameter declaration or parameter type name, + as found in a parmlist. */ + parm: +- typed_declspecs setspecs parm_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ typed_declspecs setspecs parm_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | typed_declspecs setspecs notype_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | typed_declspecs setspecs notype_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | typed_declspecs setspecs absdcl maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | typed_declspecs setspecs absdcl maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | declmods setspecs notype_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | declmods setspecs notype_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } + +- | declmods setspecs absdcl maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | declmods setspecs absdcl maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); ++/* end-GG-local */ + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); +@@ -2871,30 +2878,35 @@ + + myparms: + myparm +- { push_parm_decl ($1); } ++/* begin-GG-local: explicit register specification for parameters */ ++ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } + | myparms ',' myparm +- { push_parm_decl ($3); } ++ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } + ; + + /* A single parameter declaration or parameter type name, +- as found in a parmlist. DOES NOT ALLOW AN INITIALIZER OR ASMSPEC */ ++ as found in a parmlist. DOES NOT ALLOW AN INITIALIZER */ + + myparm: +- parm_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, ++ parm_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, + $1), +- build_tree_list (prefix_attributes, +- $2)); } +- | notype_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $1), +- build_tree_list (prefix_attributes, +- $2)); } +- | absdcl maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $1), +- build_tree_list (prefix_attributes, +- $2)); } ++ build_tree_list (prefix_attributes, ++ $3)), $2); } ++ | notype_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $1), ++ build_tree_list (prefix_attributes, ++ $3)), $2); } ++ | absdcl maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $1), ++ build_tree_list (prefix_attributes, ++ $3)), $2); } ++/* end-GG-local */ + ; + + optparmlist: +--- gcc-2.95.3/gcc/c-parse.y Tue Apr 27 00:35:51 1999 ++++ gcc/gcc/c-parse.y Thu Sep 27 19:56:19 2001 +@@ -2134,56 +2134,63 @@ + + parms: + parm +- { push_parm_decl ($1); } ++/* begin-GG-local: explicit register specification for parameters */ ++ { push_parm_decl (TREE_PURPOSE($1), TREE_VALUE($1)); } + | parms ',' parm +- { push_parm_decl ($3); } ++ { push_parm_decl (TREE_PURPOSE($3), TREE_VALUE($3)); } + ; + + /* A single parameter declaration or parameter type name, + as found in a parmlist. */ + parm: +- typed_declspecs setspecs parm_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ typed_declspecs setspecs parm_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | typed_declspecs setspecs notype_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | typed_declspecs setspecs notype_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | typed_declspecs setspecs absdcl maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | typed_declspecs setspecs absdcl maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } +- | declmods setspecs notype_declarator maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | declmods setspecs notype_declarator maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); + resume_momentary ($2); } + +- | declmods setspecs absdcl maybe_attribute +- { $$ = build_tree_list (build_tree_list (current_declspecs, +- $3), +- build_tree_list (prefix_attributes, +- $4)); ++ | declmods setspecs absdcl maybeasm maybe_attribute ++ { $$ = build_tree_list ( ++ build_tree_list (build_tree_list (current_declspecs, ++ $3), ++ build_tree_list (prefix_attributes, ++ $5)), $4); ++/* end-GG-local */ + current_declspecs = TREE_VALUE (declspec_stack); + prefix_attributes = TREE_PURPOSE (declspec_stack); + declspec_stack = TREE_CHAIN (declspec_stack); --- gcc-2.95.3/gcc/cppfiles.c Mon May 10 17:24:33 1999 +++ gcc/gcc/cppfiles.c Thu Sep 27 19:35:54 2001 @@ -56,13 +56,18 @@ @@ -30423,7 +27877,36 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/cppfiles.c gcc/gcc/cppfiles.c if (last_slash) { if (last_slash == dir) -diff -ruN --exclude=CVS gcc-2.95.3/gcc/expmed.c gcc/gcc/expmed.c +--- gcc-2.95.3/gcc/cp/tinfo.s Thu Jan 1 01:00:00 1970 ++++ gcc/gcc/cp/tinfo.s Sun Jun 30 11:49:04 2002 +@@ -0,0 +1,14 @@ ++ .file "tinfo.cc" ++gcc2_compiled.: ++ .globl os ++ .section ".sbss","aw",@nobits ++ .align 2 ++os: ++ .space 4 ++ .size os,4 ++ .globl ns ++ .align 2 ++ns: ++ .space 4 ++ .size ns,4 ++ .ident "GCC: (GNU) 2.95.3 20010315 (release/lcs-2002-04-12)" +--- gcc-2.95.3/gcc/c-tree.h Thu Feb 18 21:38:43 1999 ++++ gcc/gcc/c-tree.h Thu Sep 27 19:35:53 2001 +@@ -331,7 +331,9 @@ + extern void print_lang_type PROTO((FILE *, tree, int)); + extern void push_c_function_context PROTO((void)); + extern void push_label_level PROTO((void)); +-extern void push_parm_decl PROTO((tree)); ++/* begin-GG-local: explicit register specification for parameters */ ++extern void push_parm_decl PROTO((tree, tree)); ++/* end-GG-local */ + extern tree pushdecl PROTO((tree)); + extern tree pushdecl_top_level PROTO((tree)); + extern void pushlevel PROTO((int)); --- gcc-2.95.3/gcc/expmed.c Thu Jan 25 15:03:06 2001 +++ gcc/gcc/expmed.c Thu Sep 27 19:35:54 2001 @@ -59,6 +59,10 @@ @@ -30500,7 +27983,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/expmed.c gcc/gcc/expmed.c goto extv_loses; /* Compute offset as multiple of this unit, -diff -ruN --exclude=CVS gcc-2.95.3/gcc/expr.c gcc/gcc/expr.c --- gcc-2.95.3/gcc/expr.c Mon Feb 19 15:02:00 2001 +++ gcc/gcc/expr.c Thu Sep 27 19:35:54 2001 @@ -241,6 +241,10 @@ @@ -30538,7 +28020,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/expr.c gcc/gcc/expr.c { enum machine_mode ext_mode = mode; -diff -ruN --exclude=CVS gcc-2.95.3/gcc/flow.c gcc/gcc/flow.c --- gcc-2.95.3/gcc/flow.c Thu Jan 25 15:03:08 2001 +++ gcc/gcc/flow.c Thu Sep 27 19:36:09 2001 @@ -3157,11 +3157,11 @@ @@ -30556,7 +28037,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/flow.c gcc/gcc/flow.c } /* 1 if register REGNO was alive at a place where `setjmp' was called -diff -ruN --exclude=CVS gcc-2.95.3/gcc/function.c gcc/gcc/function.c --- gcc-2.95.3/gcc/function.c Thu Jan 25 15:03:15 2001 +++ gcc/gcc/function.c Thu Sep 27 19:36:09 2001 @@ -7027,3 +7027,29 @@ @@ -30589,7 +28069,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/function.c gcc/gcc/function.c + return 0; +} +/* end-GG-local */ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/gcc.c gcc/gcc/gcc.c --- gcc-2.95.3/gcc/gcc.c Thu Jan 25 15:03:16 2001 +++ gcc/gcc/gcc.c Thu Sep 27 19:36:09 2001 @@ -1372,9 +1372,12 @@ @@ -30674,7 +28153,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/gcc.c gcc/gcc/gcc.c return 0; return (stat (path, &st) >= 0 && S_ISDIR (st.st_mode)); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/genconfig.c gcc/gcc/genconfig.c --- gcc-2.95.3/gcc/genconfig.c Fri Apr 16 21:52:24 1999 +++ gcc/gcc/genconfig.c Thu Sep 27 19:36:09 2001 @@ -327,8 +327,8 @@ @@ -30688,7 +28166,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/genconfig.c gcc/gcc/genconfig.c max_dup_operands = 1; /* Read the machine description. */ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/ginclude/stdarg.h gcc/gcc/ginclude/stdarg.h --- gcc-2.95.3/gcc/ginclude/stdarg.h Sat May 8 03:52:35 1999 +++ gcc/gcc/ginclude/stdarg.h Fri Dec 7 23:06:10 2001 @@ -102,7 +102,7 @@ @@ -30700,7 +28177,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/ginclude/stdarg.h gcc/gcc/ginclude/stdarg /* This is for little-endian machines; small args are padded upward. */ #define va_arg(AP, TYPE) \ (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)), \ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/ginclude/varargs.h gcc/gcc/ginclude/varargs.h --- gcc-2.95.3/gcc/ginclude/varargs.h Wed Jul 7 02:19:05 1999 +++ gcc/gcc/ginclude/varargs.h Fri Dec 7 23:00:30 2001 @@ -123,7 +123,7 @@ @@ -30712,7 +28188,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/ginclude/varargs.h gcc/gcc/ginclude/varar /* This is for little-endian machines; small args are padded upward. */ #define va_arg(AP, TYPE) \ (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)), \ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/longlong.h gcc/gcc/longlong.h --- gcc-2.95.3/gcc/longlong.h Wed Jan 6 21:44:39 1999 +++ gcc/gcc/longlong.h Sat Jan 5 16:41:39 2002 @@ -353,6 +353,22 @@ @@ -30746,7 +28221,39 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/longlong.h gcc/gcc/longlong.h #define count_leading_zeros(count, x) \ do { \ USItype __cbtmp; \ -diff -ruN --exclude=CVS gcc-2.95.3/gcc/morphoscollect2.c gcc/gcc/morphoscollect2.c +--- gcc-2.95.3/gcc/Makefile.in Thu Jan 25 15:02:58 2001 ++++ gcc/gcc/Makefile.in Thu Oct 4 17:12:22 2001 +@@ -367,7 +367,7 @@ + LIBGCC2_DEPS = + + # libgcc1-test target (must also be overridable for a target) +-LIBGCC1_TEST = libgcc1-test ++LIBGCC1_TEST = #libgcc1-test + + # List of extra executables that should be compiled for this target machine + # that are used for compiling from source code to object code. +@@ -403,6 +403,12 @@ + # so don't override it here. + USE_COLLECT2 = collect2$(exeext) + ++### begin-GG-local: dynamic libraries ++# List of extra object files that should be compiled and linked with ++# collect2. ++EXTRA_COLLECT2_OBJS = ++### end-GG-local ++ + # List of extra C and assembler files to add to libgcc1.a. + # Assembler files should have names ending in `.asm'. + LIB1FUNCS_EXTRA = +@@ -1359,7 +1365,7 @@ + hard-reg-set.h $(BASIC_BLOCK_H) + sbitmap.o: sbitmap.c $(CONFIG_H) system.h $(RTL_H) flags.h $(BASIC_BLOCK_H) + +-COLLECT2_OBJS = collect2.o tlink.o hash.o intl.o underscore.o version.o ++COLLECT2_OBJS = collect2.o tlink.o hash.o intl.o underscore.o version.o $(EXTRA_COLLECT2_OBJS) + collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS) + # Don't try modifying collect2 (aka ld) in place--it might be linking this. + -rm -f collect2$(exeext) --- gcc-2.95.3/gcc/morphoscollect2.c Thu Jan 1 01:00:00 1970 +++ gcc/gcc/morphoscollect2.c Thu Sep 27 19:36:09 2001 @@ -0,0 +1,344 @@ @@ -31094,7 +28601,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/morphoscollect2.c gcc/gcc/morphoscollect2 + argv[1]=output_file; + fork_execute("postlink", argv); +} -diff -ruN --exclude=CVS gcc-2.95.3/gcc/prefix.c gcc/gcc/prefix.c --- gcc-2.95.3/gcc/prefix.c Sat Apr 10 06:27:09 1999 +++ gcc/gcc/prefix.c Thu Sep 27 19:36:10 2001 @@ -275,7 +275,11 @@ @@ -31125,7 +28631,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/prefix.c gcc/gcc/prefix.c #if defined (DIR_SEPARATOR) && !defined (DIR_SEPARATOR_2) if (DIR_SEPARATOR != '/') -diff -ruN --exclude=CVS gcc-2.95.3/gcc/reload.c gcc/gcc/reload.c --- gcc-2.95.3/gcc/reload.c Thu Jan 25 15:03:20 2001 +++ gcc/gcc/reload.c Fri Sep 28 13:21:57 2001 @@ -2125,13 +2125,17 @@ @@ -31149,7 +28654,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/reload.c gcc/gcc/reload.c return i == j; } /* If two operands must match, because they are really a single -diff -ruN --exclude=CVS gcc-2.95.3/gcc/toplev.c gcc/gcc/toplev.c --- gcc-2.95.3/gcc/toplev.c Thu Jan 25 15:03:23 2001 +++ gcc/gcc/toplev.c Thu Sep 27 19:36:10 2001 @@ -924,6 +924,10 @@ @@ -31204,13 +28708,11 @@ diff -ruN --exclude=CVS gcc-2.95.3/gcc/toplev.c gcc/gcc/toplev.c if (errorcount) exit (FATAL_EXIT_CODE); -diff -ruN --exclude=CVS gcc-2.95.3/gcc/version.c gcc/gcc/version.c --- gcc-2.95.3/gcc/version.c Fri Mar 16 13:52:12 2001 +++ gcc/gcc/version.c Sun Jun 23 20:19:51 2002 @@ -1 +1 @@ -char *version_string = "2.95.3 20010315 (release)"; +char *version_string = "2.95.3 20010315 (release/lcs-2002-04-12)"; -diff -ruN --exclude=CVS gcc-2.95.3/libiberty/choose-temp.c gcc/libiberty/choose-temp.c --- gcc-2.95.3/libiberty/choose-temp.c Sun Apr 25 02:23:06 1999 +++ gcc/libiberty/choose-temp.c Thu Sep 27 19:36:10 2001 @@ -51,6 +51,9 @@ @@ -31249,7 +28751,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libiberty/choose-temp.c gcc/libiberty/choose- temp_filename[base_len++] = DIR_SEPARATOR; strcpy (temp_filename + base_len, TEMP_FILE); -diff -ruN --exclude=CVS gcc-2.95.3/libio/fileops.c gcc/libio/fileops.c --- gcc-2.95.3/libio/fileops.c Mon Apr 12 20:27:49 1999 +++ gcc/libio/fileops.c Sun Jun 30 16:09:44 2002 @@ -419,7 +419,10 @@ @@ -31276,7 +28777,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libio/fileops.c gcc/libio/fileops.c _IO_file_seek (fp, offset, dir) _IO_FILE *fp; _IO_off_t offset; -diff -ruN --exclude=CVS gcc-2.95.3/libio/genops.c gcc/libio/genops.c --- gcc-2.95.3/libio/genops.c Fri Mar 5 01:19:08 1999 +++ gcc/libio/genops.c Sun Jun 30 16:09:44 2002 @@ -467,10 +467,13 @@ @@ -31319,7 +28819,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libio/genops.c gcc/libio/genops.c _IO_default_seek (fp, offset, dir) _IO_FILE *fp; _IO_off_t offset; -diff -ruN --exclude=CVS gcc-2.95.3/libio/ioseekoff.c gcc/libio/ioseekoff.c --- gcc-2.95.3/libio/ioseekoff.c Tue Sep 16 18:00:21 1997 +++ gcc/libio/ioseekoff.c Sun Jun 30 16:09:44 2002 @@ -25,7 +25,10 @@ @@ -31334,7 +28833,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libio/ioseekoff.c gcc/libio/ioseekoff.c _IO_seekoff (fp, offset, dir, mode) _IO_FILE *fp; _IO_off_t offset; -diff -ruN --exclude=CVS gcc-2.95.3/libio/ioseekpos.c gcc/libio/ioseekpos.c --- gcc-2.95.3/libio/ioseekpos.c Tue Sep 16 18:00:23 1997 +++ gcc/libio/ioseekpos.c Sun Jun 30 16:09:44 2002 @@ -25,10 +25,13 @@ @@ -31353,7 +28851,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libio/ioseekpos.c gcc/libio/ioseekpos.c int mode; { _IO_pos_t retval; -diff -ruN --exclude=CVS gcc-2.95.3/libio/strops.c gcc/libio/strops.c --- gcc-2.95.3/libio/strops.c Fri May 22 22:40:02 1998 +++ gcc/libio/strops.c Sun Jun 30 16:09:44 2002 @@ -205,7 +205,10 @@ @@ -31368,23 +28865,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/libio/strops.c gcc/libio/strops.c _IO_str_seekoff (fp, offset, dir, mode) _IO_FILE *fp; _IO_off_t offset; -diff -ruN --exclude=CVS gcc-2.95.3/texinfo/ChangeLog gcc/texinfo/ChangeLog ---- gcc-2.95.3/texinfo/ChangeLog Fri Mar 16 13:52:21 2001 -+++ gcc/texinfo/ChangeLog Sun Jun 30 16:09:44 2002 -@@ -256,6 +256,12 @@ - From: Andreas Schwab - Date: 22 Dec 1997 10:32:53 +0100 - -+Sun Feb 22 01:19:57 1998 Fred Fish -+ -+ * info/tilde.c: Only use gcc's builtin alloca if C_ALLOCA is defined. -+ Only include if C_ALLOCA is defined. -+ * makeinfo/makeinfo.c: Ditto. -+ - Sat Feb 21 17:41:26 1998 Karl Berry - - * makeinfo/makeinfo.c (find_and_load): Malloc enough room for the -diff -ruN --exclude=CVS gcc-2.95.3/texinfo/info/tilde.c gcc/texinfo/info/tilde.c --- gcc-2.95.3/texinfo/info/tilde.c Tue Mar 24 20:40:56 1998 +++ gcc/texinfo/info/tilde.c Sun Jun 30 16:09:44 2002 @@ -31,11 +31,11 @@ @@ -31401,7 +28881,6 @@ diff -ruN --exclude=CVS gcc-2.95.3/texinfo/info/tilde.c gcc/texinfo/info/tilde.c # include # else # ifndef _AIX -diff -ruN --exclude=CVS gcc-2.95.3/texinfo/makeinfo/makeinfo.c gcc/texinfo/makeinfo/makeinfo.c --- gcc-2.95.3/texinfo/makeinfo/makeinfo.c Fri May 28 04:10:10 1999 +++ gcc/texinfo/makeinfo/makeinfo.c Sun Jun 30 16:09:44 2002 @@ -37,11 +37,11 @@