diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-11-05 09:21:28 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-11-05 09:21:28 +0000 |
commit | 14b0529532904b9e5a1e34526b4a3209f3e5bc62 (patch) | |
tree | 43e99ef7bb1cdfbb2828eea5617026f6d426e787 | |
parent | ae4664a9f2da955c9d2a3f38b28f0a4395851ace (diff) |
Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs.
No targets currently do anything with this information, nor is it presrved
in the bytecode representation. That's coming up next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Instructions.h | 36 | ||||
-rw-r--r-- | include/llvm/Transforms/Scalar.h | 3 | ||||
-rw-r--r-- | lib/AsmParser/Lexer.cpp | 947 | ||||
-rw-r--r-- | lib/AsmParser/Lexer.l | 1 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.cpp | 4592 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.h | 325 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 18 | ||||
-rw-r--r-- | lib/Transforms/IPO/GlobalOpt.cpp | 3 | ||||
-rw-r--r-- | lib/Transforms/Scalar/InstructionCombining.cpp | 8 | ||||
-rw-r--r-- | lib/Transforms/Scalar/ScalarReplAggregates.cpp | 5 | ||||
-rw-r--r-- | lib/Transforms/Utils/LowerInvoke.cpp | 21 | ||||
-rw-r--r-- | lib/VMCore/AsmWriter.cpp | 3 | ||||
-rw-r--r-- | lib/VMCore/Instructions.cpp | 12 |
13 files changed, 2680 insertions, 3294 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index 538c31ed1f..e6c3ca9fe9 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -33,10 +33,11 @@ class PointerType; /// AllocaInst. /// class AllocationInst : public UnaryInstruction { + unsigned Alignment; protected: - AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, + AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, unsigned Align, const std::string &Name = "", Instruction *InsertBefore = 0); - AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, + AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, unsigned Align, const std::string &Name, BasicBlock *InsertAtEnd); public: @@ -63,6 +64,11 @@ public: /// const Type *getAllocatedType() const; + /// getAlignment - Return the alignment of the memory that is being allocated + /// by the instruction. + /// + unsigned getAlignment() const { return Alignment; } + virtual Instruction *clone() const = 0; // Methods for support type inquiry through isa, cast, and dyn_cast: @@ -89,11 +95,18 @@ public: explicit MallocInst(const Type *Ty, Value *ArraySize = 0, const std::string &Name = "", Instruction *InsertBefore = 0) - : AllocationInst(Ty, ArraySize, Malloc, Name, InsertBefore) {} + : AllocationInst(Ty, ArraySize, Malloc, 0, Name, InsertBefore) {} MallocInst(const Type *Ty, Value *ArraySize, const std::string &Name, BasicBlock *InsertAtEnd) - : AllocationInst(Ty, ArraySize, Malloc, Name, InsertAtEnd) {} - + : AllocationInst(Ty, ArraySize, Malloc, 0, Name, InsertAtEnd) {} + MallocInst(const Type *Ty, Value *ArraySize, unsigned Align, + const std::string &Name, BasicBlock *InsertAtEnd) + : AllocationInst(Ty, ArraySize, Malloc, Align, Name, InsertAtEnd) {} + explicit MallocInst(const Type *Ty, Value *ArraySize, unsigned Align, + const std::string &Name = "", + Instruction *InsertBefore = 0) + : AllocationInst(Ty, ArraySize, Malloc, Align, Name, InsertBefore) {} + virtual MallocInst *clone() const; // Methods for support type inquiry through isa, cast, and dyn_cast: @@ -119,11 +132,18 @@ public: explicit AllocaInst(const Type *Ty, Value *ArraySize = 0, const std::string &Name = "", Instruction *InsertBefore = 0) - : AllocationInst(Ty, ArraySize, Alloca, Name, InsertBefore) {} + : AllocationInst(Ty, ArraySize, Alloca, 0, Name, InsertBefore) {} AllocaInst(const Type *Ty, Value *ArraySize, const std::string &Name, BasicBlock *InsertAtEnd) - : AllocationInst(Ty, ArraySize, Alloca, Name, InsertAtEnd) {} - + : AllocationInst(Ty, ArraySize, Alloca, 0, Name, InsertAtEnd) {} + AllocaInst(const Type *Ty, Value *ArraySize, unsigned Align, + const std::string &Name, BasicBlock *InsertAtEnd) + : AllocationInst(Ty, ArraySize, Alloca, Align, Name, InsertAtEnd) {} + explicit AllocaInst(const Type *Ty, Value *ArraySize, unsigned Align, + const std::string &Name = "", + Instruction *InsertBefore = 0) + : AllocationInst(Ty, ArraySize, Alloca, Align, Name, InsertBefore) {} + virtual AllocaInst *clone() const; // Methods for support type inquiry through isa, cast, and dyn_cast: diff --git a/include/llvm/Transforms/Scalar.h b/include/llvm/Transforms/Scalar.h index 367d9bc171..ef31f3ec7f 100644 --- a/include/llvm/Transforms/Scalar.h +++ b/include/llvm/Transforms/Scalar.h @@ -271,7 +271,8 @@ FunctionPass *createLowerPackedPass(); // "my LLVM-to-LLVM pass doesn't support the invoke instruction yet" lowering // pass. // -FunctionPass *createLowerInvokePass(); +FunctionPass *createLowerInvokePass(unsigned JumBufSize = 200, + unsigned JumpBufAlign = 0); extern const PassInfo *LowerInvokePassID; diff --git a/lib/AsmParser/Lexer.cpp b/lib/AsmParser/Lexer.cpp index 657b364a76..77d0d9fa2c 100644 --- a/lib/AsmParser/Lexer.cpp +++ b/lib/AsmParser/Lexer.cpp @@ -28,7 +28,6 @@ #define YY_FLEX_MINOR_VERSION 5 #include <stdio.h> -#include <unistd.h> /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ @@ -42,6 +41,7 @@ #ifdef __cplusplus #include <stdlib.h> +#include <unistd.h> /* Use prototypes in function declarations. */ #define YY_USE_PROTOS @@ -308,32 +308,32 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 99 -#define YY_END_OF_BUFFER 100 -static yyconst short int yy_acclist[177] = +#define YY_NUM_RULES 100 +#define YY_END_OF_BUFFER 101 +static yyconst short int yy_acclist[178] = { 0, - 100, 98, 99, 97, 98, 99, 97, 99, 98, 99, - 98, 99, 98, 99, 98, 99, 98, 99, 98, 99, - 90, 98, 99, 90, 98, 99, 1, 98, 99, 98, - 99, 98, 99, 98, 99, 98, 99, 98, 99, 98, - 99, 98, 99, 98, 99, 98, 99, 98, 99, 98, - 99, 98, 99, 98, 99, 98, 99, 98, 99, 98, - 99, 98, 99, 98, 99, 98, 99, 98, 99, 98, - 99, 89, 87, 86, 86, 93, 91, 95, 90, 1, - 75, 32, 57, 20, 89, 86, 86, 94, 95, 17, - 95, 96, 51, 56, 30, 33, 54, 3, 42, 53, - - 22, 65, 55, 74, 69, 70, 52, 58, 88, 95, - 95, 37, 66, 67, 82, 83, 44, 19, 92, 23, - 4, 49, 43, 36, 11, 95, 2, 5, 46, 48, - 38, 60, 64, 62, 63, 61, 59, 40, 84, 39, - 45, 18, 72, 81, 35, 47, 27, 21, 34, 7, - 77, 29, 80, 50, 68, 76, 24, 25, 78, 41, - 73, 71, 6, 26, 8, 14, 9, 10, 31, 12, - 28, 79, 85, 13, 15, 16 + 101, 99, 100, 98, 99, 100, 98, 100, 99, 100, + 99, 100, 99, 100, 99, 100, 99, 100, 99, 100, + 91, 99, 100, 91, 99, 100, 1, 99, 100, 99, + 100, 99, 100, 99, 100, 99, 100, 99, 100, 99, + 100, 99, 100, 99, 100, 99, 100, 99, 100, 99, + 100, 99, 100, 99, 100, 99, 100, 99, 100, 99, + 100, 99, 100, 99, 100, 99, 100, 99, 100, 99, + 100, 90, 88, 87, 87, 94, 92, 96, 91, 1, + 76, 32, 58, 20, 90, 87, 87, 95, 96, 17, + 96, 97, 52, 57, 30, 33, 55, 3, 42, 54, + + 22, 66, 56, 75, 70, 71, 53, 59, 89, 96, + 96, 37, 67, 68, 83, 84, 44, 19, 93, 23, + 4, 49, 43, 36, 11, 96, 51, 2, 5, 46, + 48, 38, 61, 65, 63, 64, 62, 60, 40, 85, + 39, 45, 18, 73, 82, 35, 47, 27, 21, 34, + 7, 78, 29, 81, 50, 69, 77, 24, 25, 79, + 41, 74, 72, 6, 26, 8, 14, 9, 10, 31, + 12, 28, 80, 86, 13, 15, 16 } ; -static yyconst short int yy_accept[398] = +static yyconst short int yy_accept[401] = { 0, 1, 1, 1, 2, 4, 7, 9, 11, 13, 15, 17, 19, 21, 24, 27, 30, 32, 34, 36, 38, @@ -347,37 +347,37 @@ static yyconst short int yy_accept[398] = 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 87, 89, - 90, 91, 92, 92, 93, 94, 94, 95, 95, 95, - 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, - 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 100, 100, 100, 100, 100, 100, 100, 100, 101, - 102, 102, 102, 103, 103, 104, 105, 105, 105, 105, - 105, 106, 106, 107, 107, 108, 108, 108, 108, 108, + 90, 91, 92, 92, 93, 94, 94, 94, 95, 95, + 95, 96, 96, 96, 96, 97, 97, 97, 97, 97, + 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, + 101, 102, 102, 102, 103, 103, 104, 105, 105, 105, + 105, 105, 106, 106, 107, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 109, 109, 110, 111, - 111, 111, 111, 112, 112, 112, 112, 113, 114, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 116, 116, 116, 116, 116, 116, 116, 116, 116, - 117, 118, 118, 119, 119, 119, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 121, 121, 121, 122, - 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 125, 125, 126, 126, 127, 127, 127, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, - 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, - 131, 131, 132, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 140, 140, 140, 141, 142, 143, 143, 143, - - 143, 143, 143, 144, 144, 144, 144, 145, 145, 146, - 146, 146, 146, 147, 148, 149, 149, 150, 150, 151, - 151, 151, 152, 152, 153, 154, 155, 155, 156, 157, - 158, 159, 159, 159, 160, 161, 162, 163, 163, 163, - 163, 163, 164, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 166, 167, 167, 167, 168, - 169, 169, 169, 169, 170, 170, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 172, 172, 173, 173, 173, 173, 173, 173, 174, - 174, 175, 175, 176, 176, 177, 177 + 108, 108, 108, 108, 108, 108, 108, 109, 109, 110, + 111, 111, 111, 111, 112, 112, 112, 112, 112, 113, + + 114, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 117, 118, 118, 119, 119, 119, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, + 121, 122, 123, 123, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 125, 125, 126, 126, 127, 128, + 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 130, 130, 131, 131, 131, 131, 131, 131, 132, + 132, 132, 132, 132, 132, 133, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 141, 141, 141, 142, 143, + + 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, + 146, 146, 147, 147, 147, 147, 148, 149, 150, 150, + 151, 151, 152, 152, 152, 153, 153, 154, 155, 156, + 156, 157, 158, 159, 160, 160, 160, 161, 162, 163, + 164, 164, 164, 164, 164, 165, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 167, 168, + 168, 168, 169, 170, 170, 170, 170, 171, 171, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 173, 173, 174, 174, 174, 174, + 174, 174, 175, 175, 176, 176, 177, 177, 178, 178 } ; @@ -422,105 +422,105 @@ static yyconst int yy_meta[42] = 3 } ; -static yyconst short int yy_base[402] = +static yyconst short int yy_base[405] = { 0, - 0, 0, 834, 835, 835, 835, 829, 820, 34, 36, + 0, 0, 840, 841, 841, 841, 835, 826, 34, 36, 38, 42, 46, 50, 0, 51, 54, 53, 56, 61, 76, 77, 79, 80, 82, 83, 84, 90, 31, 111, - 94, 140, 113, 55, 110, 116, 827, 835, 818, 835, + 94, 140, 113, 55, 110, 116, 833, 841, 824, 841, 0, 128, 131, 144, 150, 124, 160, 167, 172, 0, - 136, 89, 168, 100, 41, 145, 114, 817, 139, 183, - 184, 185, 173, 186, 187, 189, 191, 133, 188, 193, - 200, 202, 194, 203, 205, 215, 208, 211, 207, 214, - 57, 816, 224, 225, 227, 231, 233, 234, 241, 235, - 236, 239, 247, 815, 251, 244, 245, 248, 254, 266, - - 255, 276, 269, 278, 270, 277, 814, 0, 287, 291, - 813, 303, 309, 0, 812, 295, 811, 288, 310, 810, - 296, 299, 315, 809, 316, 317, 318, 319, 808, 240, - 322, 320, 321, 325, 326, 327, 328, 331, 336, 341, - 343, 344, 345, 346, 348, 350, 353, 351, 807, 806, - 355, 357, 805, 359, 804, 803, 380, 361, 363, 391, - 802, 373, 801, 374, 800, 369, 365, 393, 396, 398, - 401, 397, 399, 409, 403, 411, 405, 368, 413, 416, - 417, 418, 367, 419, 423, 799, 425, 835, 431, 437, - 443, 446, 449, 450, 439, 451, 798, 797, 796, 452, - - 453, 455, 454, 458, 461, 462, 463, 465, 464, 469, - 795, 470, 472, 478, 475, 479, 480, 482, 483, 794, - 793, 486, 792, 488, 490, 0, 494, 499, 489, 501, - 502, 505, 497, 507, 508, 791, 517, 518, 790, 789, - 519, 788, 521, 527, 522, 529, 523, 530, 531, 536, - 538, 787, 539, 786, 541, 544, 544, 545, 785, 548, - 556, 546, 557, 550, 558, 560, 564, 784, 566, 783, - 568, 569, 570, 571, 576, 782, 572, 578, 590, 582, - 592, 781, 579, 780, 779, 778, 777, 776, 775, 774, - 773, 593, 580, 595, 772, 771, 770, 594, 599, 600, - - 596, 598, 769, 607, 610, 611, 768, 612, 767, 614, - 613, 615, 766, 765, 764, 616, 763, 618, 762, 620, - 627, 761, 626, 760, 759, 758, 624, 757, 756, 755, - 754, 635, 638, 753, 752, 749, 739, 636, 639, 640, - 641, 738, 737, 643, 644, 642, 646, 647, 649, 655, - 662, 654, 665, 666, 736, 735, 668, 669, 734, 733, - 670, 672, 673, 732, 676, 731, 674, 675, 678, 681, - 684, 686, 682, 690, 693, 695, 696, 700, 698, 703, - 730, 708, 728, 706, 704, 709, 710, 711, 726, 712, - 722, 714, 574, 720, 491, 835, 753, 755, 280, 759, - - 161 + 136, 139, 168, 100, 41, 145, 114, 823, 173, 183, + 184, 185, 161, 187, 189, 191, 193, 133, 194, 196, + 200, 202, 205, 206, 209, 217, 89, 210, 213, 216, + 57, 822, 207, 224, 223, 227, 229, 233, 240, 235, + 238, 247, 249, 821, 250, 245, 241, 242, 265, 267, + + 266, 268, 271, 276, 277, 279, 820, 0, 253, 292, + 819, 304, 310, 0, 818, 311, 294, 817, 287, 314, + 816, 282, 315, 316, 815, 317, 299, 318, 319, 814, + 320, 323, 328, 329, 324, 331, 335, 332, 342, 343, + 344, 347, 345, 348, 350, 352, 353, 355, 358, 813, + 812, 362, 360, 811, 365, 810, 809, 385, 374, 367, + 389, 808, 378, 807, 381, 806, 385, 371, 368, 396, + 401, 403, 405, 407, 409, 411, 414, 413, 416, 417, + 418, 419, 424, 434, 427, 425, 805, 436, 841, 446, + 452, 371, 458, 461, 421, 446, 452, 462, 804, 803, + + 802, 463, 441, 466, 465, 467, 468, 472, 474, 475, + 476, 477, 801, 481, 480, 488, 486, 487, 489, 490, + 494, 800, 799, 492, 798, 493, 498, 0, 502, 499, + 503, 505, 513, 515, 512, 516, 519, 797, 518, 529, + 796, 795, 530, 794, 520, 532, 533, 538, 534, 537, + 540, 541, 545, 793, 547, 792, 549, 555, 791, 550, + 548, 790, 557, 560, 559, 437, 566, 567, 563, 568, + 789, 569, 788, 573, 574, 571, 577, 579, 787, 578, + 581, 591, 583, 593, 786, 596, 785, 784, 783, 782, + 781, 780, 779, 778, 597, 599, 601, 777, 776, 775, + + 600, 604, 605, 603, 606, 774, 607, 608, 612, 773, + 614, 772, 615, 616, 618, 771, 770, 769, 628, 768, + 620, 767, 634, 637, 766, 624, 765, 764, 763, 635, + 762, 761, 760, 759, 638, 641, 758, 755, 746, 744, + 639, 644, 645, 646, 743, 742, 648, 649, 647, 650, + 652, 655, 666, 667, 659, 660, 670, 741, 740, 673, + 674, 738, 737, 675, 676, 678, 736, 679, 735, 680, + 682, 685, 686, 689, 693, 694, 695, 696, 700, 701, + 702, 707, 706, 732, 711, 731, 708, 712, 709, 715, + 716, 728, 722, 724, 725, 372, 726, 292, 841, 759, + + 761, 298, 765, 252 } ; -static yyconst short int yy_def[402] = +static yyconst short int yy_def[405] = { 0, - 396, 1, 396, 396, 396, 396, 397, 398, 399, 396, - 398, 398, 398, 398, 400, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 397, 396, 398, 396, - 401, 401, 396, 396, 398, 398, 398, 398, 398, 400, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - - 398, 398, 398, 398, 398, 398, 396, 401, 401, 396, - 398, 398, 398, 49, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 49, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 396, 396, 396, - 396, 398, 398, 398, 398, 398, 398, 398, 398, 398, - - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 157, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 396, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 0, 396, 396, 396, 396, - - 396 + 399, 1, 399, 399, 399, 399, 400, 401, 402, 399, + 401, 401, 401, 401, 403, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 400, 399, 401, 399, + 404, 404, 399, 399, 401, 401, 401, 401, 401, 403, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + + 401, 401, 401, 401, 401, 401, 399, 404, 404, 399, + 401, 401, 401, 49, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 49, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 399, 399, + 399, 399, 401, 401, 401, 401, 401, 401, 401, 401, + + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 158, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 399, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 0, 399, + + 399, 399, 399, 399 } ; -static yyconst short int yy_nxt[877] = +static yyconst short int yy_nxt[883] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4, 15, 8, 8, 8, 16, 17, 18, 19, @@ -528,99 +528,100 @@ static yyconst short int yy_nxt[877] = 28, 8, 29, 30, 31, 32, 33, 34, 35, 8, 36, 42, 40, 43, 43, 44, 44, 45, 45, 40, 46, 85, 40, 40, 47, 48, 48, 40, 47, 48, - 48, 40, 40, 119, 40, 40, 40, 40, 40, 59, - 51, 60, 40, 152, 55, 104, 62, 52, 56, 53, + 48, 40, 40, 120, 40, 40, 40, 40, 40, 59, + 51, 60, 40, 153, 55, 104, 62, 52, 56, 53, 63, 54, 61, 57, 49, 64, 58, 40, 40, 65, 40, 40, 67, 40, 40, 40, 74, 70, 77, 66, 40, 40, 68, 71, 75, 40, 72, 73, 69, 76, - 93, 40, 79, 83, 81, 116, 82, 78, 80, 84, + 93, 40, 79, 83, 81, 149, 82, 78, 80, 84, 86, 40, 40, 94, 40, 40, 95, 40, 87, 102, - 118, 88, 111, 96, 89, 40, 106, 109, 109, 105, - 43, 43, 103, 121, 40, 90, 91, 40, 92, 86, + 119, 88, 111, 96, 89, 40, 106, 109, 109, 105, + 43, 43, 103, 122, 40, 90, 91, 40, 92, 86, 40, 40, 110, 44, 44, 115, 40, 97, 47, 45, - 45, 40, 136, 108, 98, 122, 99, 120, 100, 112, - 112, 40, 123, 101, 113, 47, 48, 48, 40, 40, - 113, 114, 114, 40, 40, 114, 114, 117, 114, 114, - 114, 114, 114, 114, 40, 40, 40, 40, 40, 40, - - 40, 124, 40, 127, 40, 40, 131, 132, 137, 129, - 125, 40, 126, 40, 40, 128, 40, 134, 40, 40, - 143, 130, 40, 133, 135, 40, 40, 138, 141, 139, - 142, 146, 140, 144, 148, 40, 40, 149, 40, 145, - 151, 150, 40, 147, 40, 40, 40, 40, 153, 154, - 40, 40, 40, 165, 155, 40, 40, 204, 40, 40, - 159, 156, 40, 166, 164, 40, 40, 161, 160, 157, - 162, 167, 158, 163, 171, 169, 173, 40, 179, 168, - 40, 40, 41, 174, 172, 175, 170, 40, 40, 40, - 176, 180, 181, 183, 185, 184, 109, 109, 177, 40, - - 189, 189, 186, 178, 182, 190, 40, 40, 195, 187, - 40, 190, 112, 112, 40, 191, 192, 113, 193, 193, - 40, 40, 197, 113, 194, 198, 40, 40, 40, 40, - 40, 40, 40, 40, 196, 200, 40, 40, 40, 40, - 206, 207, 40, 210, 202, 203, 205, 40, 211, 199, - 201, 212, 40, 213, 40, 40, 40, 40, 208, 40, - 209, 40, 40, 215, 40, 217, 40, 214, 40, 220, - 40, 218, 40, 216, 40, 221, 40, 222, 40, 40, - 40, 223, 219, 228, 40, 40, 252, 225, 224, 226, - 226, 236, 247, 226, 226, 227, 226, 226, 226, 226, - - 226, 226, 40, 235, 40, 233, 234, 40, 40, 40, - 40, 229, 40, 230, 40, 237, 40, 231, 239, 232, - 40, 240, 40, 244, 40, 246, 238, 40, 40, 40, - 40, 241, 249, 242, 40, 253, 40, 243, 251, 245, - 189, 189, 248, 191, 191, 190, 256, 256, 254, 250, - 40, 190, 256, 256, 255, 193, 193, 40, 193, 193, - 40, 40, 40, 40, 40, 40, 40, 258, 257, 40, - 260, 262, 40, 40, 40, 40, 40, 265, 263, 259, - 40, 40, 269, 40, 264, 268, 40, 261, 272, 40, - 40, 40, 266, 40, 40, 267, 271, 40, 273, 40, - - 40, 40, 40, 270, 275, 40, 276, 274, 40, 278, - 40, 277, 40, 40, 282, 279, 40, 283, 40, 40, - 284, 285, 287, 280, 281, 289, 292, 291, 40, 40, - 40, 290, 40, 40, 40, 286, 288, 293, 40, 295, - 40, 40, 40, 296, 294, 299, 298, 40, 297, 40, - 40, 300, 40, 256, 256, 40, 40, 40, 303, 40, - 307, 40, 301, 302, 308, 306, 309, 40, 40, 40, - 313, 40, 310, 305, 312, 40, 304, 40, 311, 40, - 40, 40, 40, 40, 317, 40, 314, 40, 318, 40, - 40, 40, 316, 40, 315, 319, 322, 320, 324, 321, - - 323, 40, 326, 40, 40, 40, 40, 40, 325, 40, - 40, 40, 327, 328, 330, 331, 329, 333, 40, 334, - 336, 40, 40, 40, 40, 40, 40, 40, 332, 40, - 335, 40, 344, 342, 338, 40, 340, 40, 40, 339, - 346, 337, 341, 347, 348, 345, 40, 40, 343, 40, - 40, 40, 40, 40, 40, 40, 349, 40, 40, 350, - 40, 351, 352, 353, 357, 40, 40, 360, 354, 356, - 358, 362, 359, 40, 364, 355, 40, 40, 363, 40, - 40, 40, 361, 40, 40, 40, 40, 40, 366, 40, - 371, 374, 40, 40, 369, 40, 367, 40, 370, 365, - - 372, 40, 378, 368, 40, 376, 40, 40, 373, 40, - 377, 40, 379, 381, 40, 40, 383, 40, 375, 40, - 40, 40, 40, 40, 380, 40, 384, 386, 387, 391, - 388, 40, 385, 40, 394, 382, 389, 40, 390, 40, - 393, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 392, 395, 37, 37, 37, 37, 39, 39, 50, - 40, 50, 50, 40, 40, 40, 40, 40, 40, 40, + 45, 40, 137, 116, 98, 117, 99, 121, 100, 112, + 112, 40, 40, 101, 113, 47, 48, 48, 40, 40, + 113, 114, 114, 40, 40, 114, 114, 118, 114, 114, + 114, 114, 114, 114, 40, 40, 40, 130, 40, 123, + + 40, 125, 40, 128, 40, 40, 124, 40, 132, 133, + 126, 40, 127, 40, 138, 129, 40, 40, 40, 135, + 40, 40, 131, 144, 40, 134, 136, 40, 40, 140, + 139, 154, 141, 147, 40, 40, 150, 145, 40, 142, + 40, 143, 152, 146, 40, 148, 40, 151, 155, 40, + 156, 40, 40, 40, 108, 166, 40, 157, 40, 160, + 40, 40, 109, 109, 165, 158, 162, 161, 159, 163, + 174, 167, 164, 168, 170, 172, 40, 40, 40, 40, + 173, 169, 40, 181, 182, 171, 176, 40, 40, 180, + 40, 177, 186, 40, 175, 184, 183, 185, 40, 178, + + 41, 190, 190, 40, 179, 40, 191, 197, 199, 187, + 40, 188, 191, 112, 112, 40, 192, 193, 113, 194, + 194, 40, 40, 196, 113, 40, 40, 40, 40, 40, + 40, 40, 203, 195, 40, 40, 202, 206, 198, 40, + 40, 200, 40, 40, 204, 205, 40, 207, 208, 209, + 201, 212, 213, 40, 40, 40, 40, 210, 40, 40, + 215, 40, 214, 40, 40, 211, 40, 217, 219, 40, + 216, 40, 222, 40, 218, 220, 40, 223, 40, 40, + 258, 258, 40, 40, 224, 40, 221, 230, 225, 40, + 239, 226, 40, 227, 228, 228, 40, 238, 228, 228, + + 40, 228, 228, 228, 228, 228, 228, 40, 229, 231, + 235, 232, 40, 236, 40, 233, 40, 234, 40, 237, + 40, 241, 40, 242, 40, 40, 240, 40, 40, 40, + 40, 246, 40, 248, 251, 40, 40, 245, 40, 243, + 249, 244, 247, 255, 253, 40, 250, 40, 40, 259, + 256, 252, 40, 254, 315, 190, 190, 40, 192, 192, + 191, 258, 258, 40, 260, 257, 191, 194, 194, 40, + 194, 194, 40, 40, 40, 264, 40, 40, 40, 40, + 261, 263, 265, 40, 268, 40, 40, 40, 40, 266, + 262, 40, 40, 267, 272, 271, 275, 40, 40, 40, + + 40, 40, 269, 40, 40, 40, 270, 274, 276, 40, + 40, 273, 278, 40, 40, 279, 40, 286, 277, 280, + 281, 282, 285, 40, 40, 288, 40, 40, 283, 40, + 40, 40, 284, 290, 287, 292, 294, 295, 296, 289, + 40, 40, 299, 40, 40, 40, 293, 291, 40, 40, + 298, 40, 40, 300, 302, 297, 40, 301, 40, 40, + 40, 40, 303, 306, 258, 258, 310, 311, 40, 304, + 40, 40, 305, 309, 40, 312, 313, 40, 40, 40, + 40, 308, 40, 307, 40, 40, 316, 320, 40, 40, + 40, 314, 40, 321, 40, 317, 319, 318, 323, 325, + + 322, 327, 40, 329, 40, 324, 326, 40, 40, 328, + 40, 40, 40, 330, 40, 40, 40, 40, 40, 40, + 332, 334, 336, 40, 337, 40, 40, 40, 339, 40, + 331, 40, 341, 333, 335, 40, 345, 338, 343, 40, + 342, 340, 351, 344, 347, 40, 40, 348, 40, 40, + 40, 346, 40, 350, 349, 40, 40, 40, 40, 40, + 40, 40, 353, 40, 354, 355, 40, 352, 356, 360, + 40, 40, 363, 357, 359, 361, 362, 40, 40, 367, + 358, 40, 365, 366, 40, 40, 40, 40, 364, 40, + 40, 40, 369, 40, 368, 374, 40, 40, 377, 372, + + 40, 370, 373, 375, 40, 40, 40, 40, 371, 381, + 379, 40, 40, 40, 376, 380, 384, 40, 40, 40, + 40, 386, 40, 40, 382, 378, 40, 40, 387, 383, + 389, 390, 391, 40, 394, 40, 40, 40, 393, 40, + 385, 388, 40, 40, 392, 397, 40, 40, 40, 40, + 396, 40, 40, 40, 40, 40, 395, 40, 398, 37, + 37, 37, 37, 39, 39, 50, 40, 50, 50, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 188, 40, 40, 40, 40, - 107, 40, 38, 396, 3, 396, 396, 396, 396, 396, - 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, - 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, - 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, - 396, 396, 396, 396, 396, 396 + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 189, 40, 40, 40, 40, 107, 40, 38, 399, + 3, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 399, 399 } ; -static yyconst short int yy_chk[877] = +static yyconst short int yy_chk[883] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -633,91 +634,92 @@ static yyconst short int yy_chk[877] = 19, 16, 18, 17, 13, 19, 17, 21, 22, 20, 23, 24, 21, 25, 26, 27, 24, 22, 25, 20, - 52, 28, 21, 22, 24, 31, 23, 23, 21, 24, - 31, 54, 26, 28, 27, 52, 27, 25, 26, 28, + 77, 28, 21, 22, 24, 31, 23, 23, 21, 24, + 31, 54, 26, 28, 27, 77, 27, 25, 26, 28, 30, 35, 30, 31, 33, 57, 31, 36, 30, 33, 54, 30, 46, 31, 30, 46, 36, 42, 42, 35, 43, 43, 33, 57, 68, 30, 30, 51, 30, 32, - 59, 32, 44, 44, 44, 51, 56, 32, 45, 45, - 45, 45, 68, 401, 32, 59, 32, 56, 32, 47, - 47, 47, 59, 32, 47, 48, 48, 48, 48, 53, - 47, 49, 49, 49, 63, 49, 49, 53, 49, 49, - 49, 49, 49, 49, 60, 61, 62, 64, 65, 69, - - 66, 60, 67, 62, 70, 73, 65, 66, 69, 63, - 61, 71, 61, 72, 74, 62, 75, 67, 79, 77, - 74, 64, 78, 66, 67, 80, 76, 70, 73, 71, - 73, 76, 72, 75, 77, 83, 84, 78, 85, 75, - 80, 79, 86, 76, 87, 88, 90, 91, 83, 84, - 92, 130, 89, 91, 85, 96, 97, 130, 93, 98, - 88, 85, 95, 92, 90, 99, 101, 89, 88, 86, - 89, 93, 87, 89, 96, 95, 98, 100, 101, 93, - 103, 105, 399, 99, 97, 100, 95, 102, 106, 104, - 100, 102, 102, 103, 104, 103, 109, 109, 100, 118, - - 110, 110, 105, 100, 102, 110, 116, 121, 118, 106, - 122, 110, 112, 112, 112, 113, 113, 112, 113, 113, - 113, 119, 121, 112, 116, 122, 123, 125, 126, 127, - 128, 132, 133, 131, 119, 125, 134, 135, 136, 137, - 132, 133, 138, 136, 127, 128, 131, 139, 137, 123, - 126, 138, 140, 139, 141, 142, 143, 144, 134, 145, - 135, 146, 148, 141, 147, 143, 151, 140, 152, 146, - 154, 144, 158, 142, 159, 147, 167, 148, 183, 178, - 166, 151, 145, 159, 162, 164, 183, 154, 152, 157, - 157, 167, 178, 157, 157, 158, 157, 157, 157, 157, - - 157, 157, 160, 166, 168, 162, 164, 169, 172, 170, - 173, 160, 171, 160, 175, 168, 177, 160, 170, 160, - 174, 171, 176, 175, 179, 177, 169, 180, 181, 182, - 184, 172, 180, 173, 185, 184, 187, 174, 182, 176, - 189, 189, 179, 190, 190, 189, 190, 190, 185, 181, - 195, 189, 191, 191, 187, 192, 192, 192, 193, 193, - 193, 194, 196, 200, 201, 203, 202, 195, 194, 204, - 200, 202, 205, 206, 207, 209, 208, 205, 203, 196, - 210, 212, 209, 213, 204, 208, 215, 201, 213, 214, - 216, 217, 206, 218, 219, 207, 212, 222, 214, 224, - - 229, 225, 395, 210, 216, 227, 217, 215, 233, 219, - 228, 218, 230, 231, 227, 222, 232, 228, 234, 235, - 229, 230, 231, 224, 225, 232, 235, 234, 237, 238, - 241, 233, 243, 245, 247, 230, 231, 237, 244, 241, - 246, 248, 249, 243, 238, 246, 245, 250, 244, 251, - 253, 247, 255, 256, 256, 257, 258, 262, 250, 260, - 257, 264, 248, 249, 258, 255, 260, 261, 263, 265, - 264, 266, 261, 253, 263, 267, 251, 269, 262, 271, - 272, 273, 274, 277, 269, 393, 265, 275, 271, 278, - 283, 293, 267, 280, 266, 272, 275, 273, 278, 274, - - 277, 279, 280, 281, 292, 298, 294, 301, 279, 302, - 299, 300, 281, 283, 293, 294, 292, 299, 304, 300, - 302, 305, 306, 308, 311, 310, 312, 316, 298, 318, - 301, 320, 316, 311, 305, 327, 308, 323, 321, 306, - 320, 304, 310, 321, 323, 318, 332, 338, 312, 333, - 339, 340, 341, 346, 344, 345, 327, 347, 348, 332, - 349, 333, 338, 339, 345, 352, 350, 348, 340, |