aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-11-05 09:21:28 +0000
committerNate Begeman <natebegeman@mac.com>2005-11-05 09:21:28 +0000
commit14b0529532904b9e5a1e34526b4a3209f3e5bc62 (patch)
tree43e99ef7bb1cdfbb2828eea5617026f6d426e787
parentae4664a9f2da955c9d2a3f38b28f0a4395851ace (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.h36
-rw-r--r--include/llvm/Transforms/Scalar.h3
-rw-r--r--lib/AsmParser/Lexer.cpp947
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp4592
-rw-r--r--lib/AsmParser/llvmAsmParser.h325
-rw-r--r--lib/AsmParser/llvmAsmParser.y18
-rw-r--r--lib/Transforms/IPO/GlobalOpt.cpp3
-rw-r--r--lib/Transforms/Scalar/InstructionCombining.cpp8
-rw-r--r--lib/Transforms/Scalar/ScalarReplAggregates.cpp5
-rw-r--r--lib/Transforms/Utils/LowerInvoke.cpp21
-rw-r--r--lib/VMCore/AsmWriter.cpp3
-rw-r--r--lib/VMCore/Instructions.cpp12
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,