diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/.gitignore | 1 | ||||
| -rw-r--r-- | src/buildvm_x86.h | 1730 |
2 files changed, 1730 insertions, 1 deletions
diff --git a/src/.gitignore b/src/.gitignore index e9f998ce..b6e44c8a 100644 --- a/src/.gitignore +++ b/src/.gitignore | |||
| @@ -1,6 +1,5 @@ | |||
| 1 | luajit | 1 | luajit |
| 2 | buildvm | 2 | buildvm |
| 3 | buildvm_*.h | ||
| 4 | lj_ffdef.h | 3 | lj_ffdef.h |
| 5 | lj_libdef.h | 4 | lj_libdef.h |
| 6 | lj_recdef.h | 5 | lj_recdef.h |
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h new file mode 100644 index 00000000..0c023423 --- /dev/null +++ b/src/buildvm_x86.h | |||
| @@ -0,0 +1,1730 @@ | |||
| 1 | /* | ||
| 2 | ** This file has been pre-processed with DynASM. | ||
| 3 | ** http://luajit.org/dynasm.html | ||
| 4 | ** DynASM version 1.2.1, DynASM x86 version 1.2.1 | ||
| 5 | ** DO NOT EDIT! The original file is in "buildvm_x86.dasc". | ||
| 6 | */ | ||
| 7 | |||
| 8 | #if DASM_VERSION != 10201 | ||
| 9 | #error "Version mismatch between DynASM and included encoding engine" | ||
| 10 | #endif | ||
| 11 | |||
| 12 | #define DASM_SECTION_CODE_OP 0 | ||
| 13 | #define DASM_SECTION_CODE_SUB 1 | ||
| 14 | #define DASM_MAXSECTION 2 | ||
| 15 | static const unsigned char build_actionlist[12300] = { | ||
| 16 | 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,139,181,233, | ||
| 17 | 139,189,233,139,108,36,48,141,12,202,141,68,194,252,252,59,141,233,15,135, | ||
| 18 | 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244, | ||
| 19 | 1,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
| 20 | 12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,252,248,139, | ||
| 21 | 173,233,137,114,252,252,15,182,181,233,141,60,252,242,139,116,36,48,141,66, | ||
| 22 | 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, | ||
| 23 | 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, | ||
| 24 | 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, | ||
| 25 | 2,15,182,141,233,139,181,233,139,189,233,141,12,202,252,233,244,9,248,14, | ||
| 26 | 255,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141, | ||
| 27 | 233,141,136,233,137,124,36,4,137,44,36,137,133,233,59,141,233,15,135,244, | ||
| 28 | 15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194, | ||
| 29 | 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,15,132, | ||
| 30 | 244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141, | ||
| 31 | 68,193,252,248,137,141,233,255,141,136,233,137,44,36,137,133,233,59,141,233, | ||
| 32 | 15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141, | ||
| 33 | 12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237, | ||
| 34 | 15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230, | ||
| 35 | 252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,255,139,44,10,137, | ||
| 36 | 106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1, | ||
| 37 | 248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57, | ||
| 38 | 193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,21,139,76,36,52,137, | ||
| 39 | 141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59, | ||
| 40 | 149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244, | ||
| 41 | 4,248,7,255,133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137, | ||
| 42 | 149,233,137,68,36,20,137,76,36,4,137,44,36,232,251,1,0,139,149,233,252,233, | ||
| 43 | 244,3,248,23,139,76,36,4,139,68,36,8,129,225,239,137,204,139,108,36,48,139, | ||
| 44 | 173,233,199,133,233,237,252,233,244,22,248,24,139,76,36,4,129,225,239,137, | ||
| 45 | 204,139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233, | ||
| 46 | 139,157,233,129,195,239,139,114,252,252,199,66,252,252,237,255,199,131,233, | ||
| 47 | 237,252,233,244,16,248,20,252,247,198,237,15,132,244,25,131,230,252,248,41, | ||
| 48 | 252,242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16, | ||
| 49 | 248,15,199,68,36,4,237,252,233,244,247,248,13,131,232,8,137,202,137,252,249, | ||
| 50 | 139,181,233,139,108,36,48,248,11,131,232,4,41,209,193,252,233,3,131,198,4, | ||
| 51 | 137,149,233,137,133,233,137,116,36,24,137,76,36,4,137,44,36,248,1,232,251, | ||
| 52 | 1,0,139,141,233,139,133,233,255,139,105,252,248,139,113,252,252,41,200,193, | ||
| 53 | 232,3,131,192,1,252,255,165,233,248,26,85,87,86,83,190,237,131,252,236,28, | ||
| 54 | 49,192,139,108,36,48,141,188,253,36,233,139,76,36,52,139,157,233,129,195, | ||
| 55 | 239,137,189,233,137,68,36,52,137,68,36,24,56,133,233,15,132,244,249,199,131, | ||
| 56 | 233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41, | ||
| 57 | 209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,17,252,233,244, | ||
| 58 | 18,248,27,85,87,86,83,190,237,252,233,244,247,248,28,255,85,87,86,83,190, | ||
| 59 | 237,248,1,131,252,236,28,139,108,36,48,139,76,36,52,248,2,139,189,233,137, | ||
| 60 | 124,36,52,137,100,36,24,137,165,233,139,157,233,129,195,239,248,3,199,131, | ||
| 61 | 233,237,139,149,233,1,206,41,214,139,133,233,41,200,193,232,3,131,192,1,139, | ||
| 62 | 105,252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,248,30, | ||
| 63 | 85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,60,139,76,36,56,139,84, | ||
| 64 | 36,52,137,100,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,36, | ||
| 65 | 56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,137,165,233, | ||
| 66 | 252,255,210,133,192,15,132,244,21,255,137,193,190,237,252,233,244,2,248,25, | ||
| 67 | 1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,137,200,139, | ||
| 68 | 117,252,244,139,122,252,248,139,191,233,139,191,233,252,255,101,252,240,248, | ||
| 69 | 31,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,32,252, | ||
| 70 | 247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,137,69,0,137,108, | ||
| 71 | 36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,141,68,36,16,128, | ||
| 72 | 126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252, | ||
| 73 | 233,244,248,248,35,15,182,70,252,254,137,68,36,12,219,68,36,12,221,92,36, | ||
| 74 | 16,141,68,36,16,252,233,244,247,248,36,255,15,182,70,252,254,141,4,194,248, | ||
| 75 | 1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137, | ||
| 76 | 68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,1,139,149,233,133,192, | ||
| 77 | 15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4,137, | ||
| 78 | 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
| 79 | 3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184,3,0, | ||
| 80 | 0,0,252,255,165,233,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128, | ||
| 81 | 126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252, | ||
| 82 | 233,244,248,248,38,15,182,70,252,254,137,68,36,12,219,68,36,12,221,92,36, | ||
| 83 | 16,141,68,36,16,252,233,244,247,248,39,255,15,182,70,252,254,141,4,194,248, | ||
| 84 | 1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137, | ||
| 85 | 68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,2,139,149,233,133,192, | ||
| 86 | 15,132,244,249,15,182,78,252,253,139,108,202,4,139,12,202,137,104,4,137,8, | ||
| 87 | 248,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
| 88 | 3,139,141,233,137,113,252,244,15,182,70,252,253,139,108,194,4,139,4,194,137, | ||
| 89 | 105,20,137,65,16,141,177,233,41,214,139,105,252,248,184,4,0,0,0,252,255,165, | ||
| 90 | 233,248,41,15,182,110,252,252,141,4,194,141,12,202,137,108,36,12,139,108, | ||
| 91 | 36,48,137,68,36,8,137,76,36,4,137,44,36,137,116,36,24,137,149,233,232,251, | ||
| 92 | 1,3,248,3,139,149,233,131,252,248,1,15,135,244,42,248,4,141,118,4,15,130, | ||
| 93 | 244,252,248,5,15,183,70,252,254,141,180,253,134,233,248,6,255,139,6,15,182, | ||
| 94 | 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,43,131,198,4,129,120, | ||
| 95 | 253,4,239,15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,244, | ||
| 96 | 4,248,45,137,108,36,12,139,108,36,48,131,252,238,4,137,68,36,8,137,76,36, | ||
| 97 | 4,137,44,36,137,116,36,24,137,149,233,232,251,1,4,252,233,244,3,248,46,141, | ||
| 98 | 4,199,252,233,244,247,248,47,141,4,199,141,44,252,234,149,252,233,244,248, | ||
| 99 | 248,48,141,4,194,137,197,252,233,244,248,248,49,255,141,4,194,248,1,141,44, | ||
| 100 | 252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70, | ||
| 101 | 252,252,137,76,36,4,137,68,36,16,137,44,36,137,116,36,24,137,149,233,232, | ||
| 102 | 251,1,5,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,113,252, | ||
| 103 | 244,141,176,233,139,105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133, | ||
| 104 | 244,29,252,255,165,233,248,50,141,4,194,139,108,36,48,137,68,36,4,137,44, | ||
| 105 | 36,137,116,36,24,137,149,233,232,251,1,6,139,149,233,252,233,244,42,248,29, | ||
| 106 | 137,76,36,12,137,68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36, | ||
| 107 | 4,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,7,139,149,233, | ||
| 108 | 139,76,36,12,139,68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,51, | ||
| 109 | 252,255,165,233,248,52,255,139,108,36,48,137,76,36,4,137,44,36,137,116,36, | ||
| 110 | 24,137,149,233,232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232, | ||
| 111 | 193,232,16,252,255,164,253,171,233,248,53,129,252,248,239,15,130,244,54,139, | ||
| 112 | 105,4,129,252,253,239,15,131,244,54,137,68,36,20,137,105,252,252,139,41,137, | ||
| 113 | 105,252,248,131,232,2,15,132,244,248,137,12,36,248,1,131,193,8,139,105,4, | ||
| 114 | 137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,139,12,36,248, | ||
| 115 | 2,139,68,36,20,252,233,244,55,248,56,129,252,248,239,15,130,244,54,139,105, | ||
| 116 | 4,184,237,255,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232, | ||
| 117 | 248,1,255,139,105,252,248,139,132,253,197,233,199,65,252,252,237,137,65,252, | ||
| 118 | 248,252,233,244,57,248,58,129,252,248,239,15,130,244,54,139,105,4,129,252, | ||
| 119 | 253,239,15,133,244,252,248,1,139,41,139,173,233,248,2,133,252,237,199,65, | ||
| 120 | 252,252,237,15,132,244,57,139,65,252,248,139,131,233,199,65,252,252,237,137, | ||
| 121 | 105,252,248,137,12,36,139,141,233,35,136,233,105,201,239,3,141,233,248,3, | ||
| 122 | 255,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137, | ||
| 123 | 233,133,201,15,133,244,3,252,233,244,57,248,5,139,105,4,129,252,253,239,15, | ||
| 124 | 132,244,57,139,1,139,12,36,137,105,252,252,137,65,252,248,252,233,244,57, | ||
| 125 | 248,6,129,252,253,239,15,132,244,1,255,129,252,253,239,15,135,244,253,189, | ||
| 126 | 237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,59,129,252,248, | ||
| 127 | 239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,41,131,189,233,0,15, | ||
| 128 | 133,244,54,129,121,253,12,239,15,133,244,54,139,65,8,137,133,233,199,65,252, | ||
| 129 | 252,237,255,137,105,252,248,252,246,133,233,235,15,132,244,247,128,165,233, | ||
| 130 | 235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,57,248,60,129,252, | ||
| 131 | 248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,1,139,108,36,48, | ||
| 132 | 137,68,36,4,137,44,36,137,205,137,84,36,12,131,193,8,137,76,36,8,232,251, | ||
| 133 | 1,9,137,252,233,139,84,36,12,139,40,139,64,4,137,105,252,248,137,65,252,252, | ||
| 134 | 252,233,244,57,248,61,129,252,248,239,255,15,133,244,54,129,121,253,4,239, | ||
| 135 | 15,135,244,54,221,1,252,233,244,62,248,63,129,252,248,239,15,130,244,54,129, | ||
| 136 | 121,253,4,239,15,133,244,249,139,1,248,2,199,65,252,252,237,137,65,252,248, | ||
| 137 | 252,233,244,57,248,3,129,121,253,4,239,15,135,244,54,131,187,233,0,255,15, | ||
| 138 | 133,244,54,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,139,108, | ||
| 139 | 36,48,137,141,233,137,113,252,252,137,116,36,24,137,84,36,8,137,202,137,252, | ||
| 140 | 233,232,251,1,10,139,141,233,139,84,36,8,252,233,244,2,248,65,129,252,248, | ||
| 141 | 239,15,130,244,54,15,132,244,248,248,1,129,121,253,4,239,15,133,244,54,255, | ||
| 142 | 139,41,137,108,36,4,139,108,36,48,137,44,36,137,141,233,137,113,252,252,137, | ||
| 143 | 116,36,24,137,84,36,12,131,193,8,137,76,36,8,232,251,1,11,139,141,233,139, | ||
| 144 | 84,36,12,133,192,15,132,244,249,139,105,8,139,65,12,137,105,252,248,137,65, | ||
| 145 | 252,252,139,105,16,139,65,20,137,41,137,65,4,248,66,184,237,252,233,244,67, | ||
| 146 | 248,2,199,65,12,237,252,233,244,1,248,3,199,65,252,252,237,252,233,244,57, | ||
| 147 | 248,68,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,255, | ||
| 148 | 139,133,233,199,65,252,252,237,137,65,252,248,199,65,12,237,184,237,252,233, | ||
| 149 | 244,67,248,69,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,244, | ||
| 150 | 54,129,121,253,12,239,15,135,244,54,221,65,8,217,232,222,193,219,84,36,4, | ||
| 151 | 221,89,252,248,139,41,139,68,36,4,59,133,233,15,131,244,248,193,224,3,3,133, | ||
| 152 | 233,248,1,129,120,253,4,239,15,132,244,70,255,139,40,139,64,4,137,41,137, | ||
| 153 | 65,4,252,233,244,66,248,2,131,189,233,0,15,132,244,70,137,44,36,137,84,36, | ||
| 154 | 8,137,205,232,251,1,12,137,252,233,139,84,36,8,133,192,15,133,244,1,248,70, | ||
| 155 | 184,237,252,233,244,67,248,71,129,252,248,239,15,130,244,54,129,121,253,4, | ||
| 156 | 239,15,133,244,54,139,133,233,199,65,252,252,237,137,65,252,248,217,252,238, | ||
| 157 | 221,89,8,184,237,252,233,244,67,248,72,255,129,252,248,239,15,130,244,54, | ||
| 158 | 137,113,252,252,190,237,137,202,131,193,8,131,232,1,139,105,252,248,248,1, | ||
| 159 | 252,246,131,233,235,15,133,244,249,248,2,129,121,253,252,252,239,15,133,244, | ||
| 160 | 29,252,255,165,233,248,3,131,198,1,252,233,244,2,248,73,129,252,248,239,15, | ||
| 161 | 130,244,54,129,121,253,12,239,15,133,244,54,255,137,113,252,252,139,105,4, | ||
| 162 | 137,105,12,199,65,4,237,139,41,139,113,8,137,105,8,137,49,190,237,137,202, | ||
| 163 | 129,193,239,131,232,2,252,233,244,1,248,9,139,116,36,24,252,233,244,54,248, | ||
| 164 | 74,129,252,248,239,15,130,244,54,139,41,137,113,252,252,137,116,36,24,137, | ||
| 165 | 44,36,129,121,253,4,239,15,133,244,9,131,189,233,0,15,133,244,9,128,189,233, | ||
| 166 | 235,15,135,244,9,139,181,233,255,137,116,36,4,15,132,244,247,59,181,233,15, | ||
| 167 | 132,244,9,248,1,141,116,198,252,240,59,181,233,15,135,244,9,137,181,233,139, | ||
| 168 | 108,36,48,137,141,233,131,193,8,137,141,233,139,108,36,4,141,76,193,232,41, | ||
| 169 | 252,241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4, | ||
| 170 | 14,137,70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137, | ||
| 171 | 76,36,12,137,76,36,8,232,244,26,199,131,233,237,139,108,36,48,139,52,36,139, | ||
| 172 | 149,233,255,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, | ||
| 173 | 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, | ||
| 174 | 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, | ||
| 175 | 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248, | ||
| 176 | 7,139,116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247, | ||
| 177 | 198,237,15,132,244,17,252,233,244,18,248,8,255,199,66,252,252,237,139,142, | ||
| 178 | 233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233, | ||
| 179 | 244,7,248,9,139,12,36,137,185,233,137,116,36,4,137,44,36,232,251,1,0,139, | ||
| 180 | 149,233,252,233,244,4,248,9,139,116,36,24,252,233,244,54,248,75,139,173,233, | ||
| 181 | 137,113,252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,9,128,189, | ||
| 182 | 233,235,15,135,244,9,255,139,181,233,137,116,36,4,15,132,244,247,59,181,233, | ||
| 183 | 15,132,244,9,248,1,141,116,198,252,248,59,181,233,15,135,244,9,137,181,233, | ||
| 184 | 139,108,36,48,137,141,233,137,141,233,139,108,36,4,141,76,193,252,240,41, | ||
| 185 | 252,241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4, | ||
| 186 | 14,137,70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137, | ||
| 187 | 76,36,12,137,76,36,8,232,244,26,199,131,233,237,255,139,108,36,48,139,52, | ||
| 188 | 36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, | ||
| 189 | 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, | ||
| 190 | 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, | ||
| 191 | 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137, | ||
| 192 | 68,36,20,49,201,252,247,198,237,15,132,244,17,252,233,244,18,248,8,255,137, | ||
| 193 | 116,36,4,137,44,36,232,251,1,13,248,9,139,12,36,137,185,233,137,116,36,4, | ||
| 194 | 137,44,36,232,251,1,0,139,149,233,252,233,244,4,248,76,139,108,36,48,137, | ||
| 195 | 113,252,252,252,247,133,233,237,15,132,244,54,137,141,233,141,68,193,252, | ||
| 196 | 248,137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,22,248, | ||
| 197 | 77,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,221, | ||
| 198 | 1,217,225,248,62,221,89,252,248,248,57,184,237,248,67,137,68,36,20,248,55, | ||
| 199 | 252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,139,6,15, | ||
| 200 | 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,193,252, | ||
| 201 | 244,237,131,192,1,252,233,244,5,248,7,137,202,185,252,248,252,255,252,255, | ||
| 202 | 252,255,252,233,244,18,248,78,129,252,248,239,15,130,244,54,129,121,253,4, | ||
| 203 | 239,255,15,135,244,54,221,1,232,244,79,252,233,244,62,248,80,129,252,248, | ||
| 204 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,232,244,81,252,233, | ||
| 205 | 244,62,248,82,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
| 206 | 54,255,221,1,217,252,250,252,233,244,62,248,83,129,252,248,239,15,130,244, | ||
| 207 | 54,129,121,253,4,239,15,135,244,54,217,252,237,221,1,217,252,241,252,233, | ||
| 208 | 244,62,248,84,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
| 209 | 54,217,252,236,221,1,217,252,241,252,233,244,62,248,85,129,252,248,239,15, | ||
| 210 | 130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,232,244,86,252,233,244, | ||
| 211 | 62,248,87,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
| 212 | 1,217,252,254,252,233,244,62,248,88,129,252,248,239,15,130,244,54,129,121, | ||
| 213 | 253,4,239,15,135,244,54,255,221,1,217,252,255,252,233,244,62,248,89,129,252, | ||
| 214 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,252,242,221, | ||
| 215 | 216,252,233,244,62,248,90,129,252,248,239,15,130,244,54,129,121,253,4,239, | ||
| 216 | 15,135,244,54,221,1,217,192,216,200,217,232,222,225,217,252,250,217,252,243, | ||
| 217 | 252,233,244,62,248,91,129,252,248,239,15,130,244,54,255,129,121,253,4,239, | ||
| 218 | 15,135,244,54,221,1,217,192,216,200,217,232,222,225,217,252,250,217,201,217, | ||
| 219 | 252,243,252,233,244,62,248,92,129,252,248,239,15,130,244,54,129,121,253,4, | ||
| 220 | 239,15,135,244,54,221,1,217,232,217,252,243,252,233,244,62,248,93,129,252, | ||
| 221 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,137,76,36,16, | ||
| 222 | 221,28,36,137,213,232,251,1,14,139,76,36,16,137,252,234,252,233,244,62,248, | ||
| 223 | 94,255,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
| 224 | 1,137,76,36,16,221,28,36,137,213,232,251,1,15,139,76,36,16,137,252,234,252, | ||
| 225 | 233,244,62,248,95,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135, | ||
| 226 | 244,54,221,1,137,76,36,16,221,28,36,137,213,232,251,1,16,139,76,36,16,137, | ||
| 227 | 252,234,252,233,244,62,248,96,248,97,129,252,248,239,15,130,244,54,129,121, | ||
| 228 | 253,4,239,255,15,135,244,54,221,1,220,141,233,252,233,244,62,248,98,129,252, | ||
| 229 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239, | ||
| 230 | 15,135,244,54,221,1,221,65,8,217,252,243,252,233,244,62,248,99,129,252,248, | ||
| 231 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,129,121,253,12,239, | ||
| 232 | 15,135,244,54,221,65,8,221,1,217,252,253,221,217,252,233,244,62,248,100,129, | ||
| 233 | 252,248,239,15,130,244,54,139,105,4,129,252,253,239,15,135,244,54,139,1,137, | ||
| 234 | 105,252,252,137,65,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244, | ||
| 235 | 249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244, | ||
| 236 | 250,248,1,193,252,237,21,41,197,137,44,36,219,4,36,139,105,252,252,129,229, | ||
| 237 | 252,255,252,255,15,128,129,205,0,0,224,63,137,105,252,252,248,2,221,25,184, | ||
| 238 | 237,252,233,244,67,248,3,255,217,252,238,252,233,244,2,248,4,221,1,199,4, | ||
| 239 | 36,0,0,128,90,216,12,36,221,89,252,248,139,105,252,252,184,52,4,0,0,209,229, | ||
| 240 | 252,233,244,1,248,101,129,252,248,239,15,130,244,54,129,121,253,4,239,15, | ||
| 241 | 135,244,54,221,1,139,105,4,209,229,129,252,253,0,0,224,252,255,15,132,244, | ||
| 242 | 250,217,192,232,244,102,220,252,233,248,1,221,89,252,248,221,25,139,65,252, | ||
| 243 | 252,139,105,4,49,232,15,136,244,249,248,2,184,237,252,233,244,67,248,3,255, | ||
| 244 | 129,252,245,0,0,0,128,137,105,4,252,233,244,2,248,4,217,252,238,217,201,252, | ||
| 245 | 233,244,1,248,103,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135, | ||
| 246 | 244,54,129,121,253,12,239,15,135,244,54,221,65,8,221,1,248,1,217,252,248, | ||
| 247 | 223,224,158,15,138,244,1,221,217,252,233,244,62,248,104,129,252,248,239,15, | ||
| 248 | 130,244,54,255,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135, | ||
| 249 | 244,54,221,1,221,65,8,232,244,105,252,233,244,62,248,106,129,252,248,239, | ||
| 250 | 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,189,2,0,0,0,248,1,57, | ||
| 251 | 197,15,131,244,62,129,124,253,252,233,252,252,239,15,135,244,251,255,221, | ||
| 252 | 68,252,233,252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224, | ||
| 253 | 252,246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,131,197,1,252,233, | ||
| 254 | 244,1,248,107,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
| 255 | 54,221,1,189,2,0,0,0,248,1,57,197,15,131,244,62,129,124,253,252,233,252,252, | ||
| 256 | 239,15,135,244,251,221,68,252,233,252,248,255,219,252,233,218,209,221,217, | ||
| 257 | 255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216, | ||
| 258 | 88,255,131,197,1,252,233,244,1,248,5,221,216,252,233,244,54,248,108,129,252, | ||
| 259 | 248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,41,219,133,233, | ||
| 260 | 252,233,244,62,248,109,129,252,248,239,15,133,244,54,129,121,253,4,239,15, | ||
| 261 | 133,244,54,139,41,131,189,233,1,255,15,130,244,70,15,182,173,233,137,44,36, | ||
| 262 | 219,4,36,252,233,244,62,248,110,139,171,233,59,171,233,15,130,244,247,232, | ||
| 263 | 244,64,248,1,129,252,248,239,15,133,244,54,129,121,253,4,239,15,135,244,54, | ||
| 264 | 221,1,219,92,36,12,129,124,36,12,252,255,0,0,0,15,135,244,54,141,68,36,12, | ||
| 265 | 137,76,36,16,199,68,36,8,1,0,0,0,137,68,36,4,248,111,139,108,36,48,137,44, | ||
| 266 | 36,137,116,36,24,137,149,233,255,232,251,1,17,139,76,36,16,139,149,233,199, | ||
| 267 | 65,252,252,237,137,65,252,248,252,233,244,57,248,112,139,171,233,59,171,233, | ||
| 268 | 15,130,244,247,232,244,64,248,1,137,76,36,16,199,68,36,12,252,255,252,255, | ||
| 269 | 252,255,252,255,129,252,248,239,15,130,244,54,15,134,244,247,129,121,253, | ||
| 270 | 20,239,15,135,244,54,221,65,16,219,92,36,12,248,1,129,121,253,4,239,15,133, | ||
| 271 | 244,54,255,129,121,253,12,239,15,135,244,54,139,41,137,108,36,4,139,173,233, | ||
| 272 | 221,65,8,219,92,36,8,139,68,36,12,57,197,15,130,244,251,248,2,139,76,36,8, | ||
| 273 | 133,201,15,142,244,253,248,3,139,108,36,4,41,200,15,140,244,113,141,172,253, | ||
| 274 | 13,233,131,192,1,248,4,137,108,36,4,137,68,36,8,252,233,244,111,248,5,15, | ||
| 275 | 140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255, | ||
| 276 | 15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233, | ||
| 277 | 244,3,248,113,49,192,252,233,244,4,248,114,129,252,248,239,15,130,244,54, | ||
| 278 | 139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,137,76,36,16,129,121, | ||
| 279 | 253,4,239,15,133,244,54,255,129,121,253,12,239,15,135,244,54,139,41,221,65, | ||
| 280 | 8,219,92,36,12,139,68,36,12,133,192,15,142,244,113,131,189,233,1,15,130,244, | ||
| 281 | 113,15,133,244,115,57,131,233,15,130,244,115,15,182,141,233,139,171,233,137, | ||
| 282 | 68,36,8,137,108,36,4,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,252, | ||
| 283 | 233,244,111,248,116,129,252,248,239,15,130,244,54,255,139,171,233,59,171, | ||
| 284 | 233,15,130,244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133, | ||
| 285 | 244,54,139,41,139,133,233,133,192,15,132,244,113,57,131,233,15,130,244,117, | ||
| 286 | 129,197,239,137,116,36,12,137,68,36,8,139,179,233,137,116,36,4,248,1,15,182, | ||
| 287 | 77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,139,116,36,12,252,233,244, | ||
| 288 | 111,248,118,255,129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130, | ||
| 289 | 244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139, | ||
| 290 | 41,139,133,233,57,131,233,15,130,244,117,129,197,239,137,116,36,12,137,68, | ||
| 291 | 36,8,139,179,233,137,116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252, | ||
| 292 | 249,65,15,130,244,248,255,131,252,249,90,15,135,244,248,131,252,241,32,248, | ||
| 293 | 2,136,12,6,248,3,131,232,1,15,137,244,1,139,116,36,12,252,233,244,111,248, | ||
| 294 | 119,129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130,244,247,232, | ||
| 295 | 244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133, | ||
| 296 | 233,255,57,131,233,15,130,244,117,129,197,239,137,116,36,12,137,68,36,8,139, | ||
| 297 | 179,233,137,116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15, | ||
| 298 | 130,244,248,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6, | ||
| 299 | 248,3,131,232,1,15,137,244,1,139,116,36,12,252,233,244,111,248,120,129,252, | ||
| 300 | 248,239,15,130,244,54,129,121,253,4,239,255,15,133,244,54,137,84,36,4,137, | ||
| 301 | 205,139,9,232,251,1,18,137,4,36,137,252,233,139,84,36,4,219,4,36,252,233, | ||
| 302 | 244,62,248,121,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
| 303 | 54,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,219,4,36,252,233, | ||
| 304 | 244,62,248,122,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
| 305 | 54,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68, | ||
| 306 | 36,20,141,68,193,252,240,248,1,57,200,15,134,244,123,255,129,120,253,4,239, | ||
| 307 | 15,135,244,124,221,0,216,68,36,16,221,28,36,35,44,36,131,232,8,252,233,244, | ||
| 308 | 1,248,125,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
| 309 | 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141, | ||
| 310 | 68,193,252,240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124, | ||
| 311 | 221,0,216,68,36,16,221,28,36,11,44,36,131,232,8,252,233,244,1,248,126,129, | ||
| 312 | 252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199,68, | ||
| 313 | 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193, | ||
| 314 | 252,240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124,221, | ||
| 315 | 0,216,68,36,16,221,28,36,51,44,36,131,232,8,252,233,244,1,248,127,129,252, | ||
| 316 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16, | ||
| 317 | 0,0,192,89,216,68,36,16,221,28,36,139,44,36,15,205,252,233,244,123,248,128, | ||
| 318 | 129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199, | ||
| 319 | 68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,252,247,213,248,123, | ||
| 320 | 137,44,36,219,4,36,252,233,244,62,248,124,139,68,36,20,252,233,244,54,248, | ||
| 321 | 129,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121, | ||
| 322 | 253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36, | ||
| 323 | 16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,229, | ||
| 324 | 137,193,252,233,244,123,248,130,129,252,248,239,255,15,130,244,54,129,121, | ||
| 325 | 253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199, | ||
| 326 | 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, | ||
| 327 | 139,76,36,8,139,44,36,211,252,237,137,193,252,233,244,123,248,131,129,252, | ||
| 328 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239, | ||
| 329 | 15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92, | ||
| 330 | 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,252,253,137, | ||
| 331 | 193,252,233,244,123,248,132,255,129,252,248,239,15,130,244,54,129,121,253, | ||
| 332 | 4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199,68, | ||
| 333 | 36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, | ||
| 334 | 139,76,36,8,139,44,36,211,197,137,193,252,233,244,123,248,133,129,252,248, | ||
| 335 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135, | ||
| 336 | 244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216, | ||
| 337 | 68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,205,137,193,252,233, | ||
| 338 | 244,123,248,115,255,184,237,252,233,244,54,248,117,184,237,248,54,139,108, | ||
| 339 | 36,48,41,202,137,113,252,252,137,116,36,24,137,84,36,8,137,141,233,141,68, | ||
| 340 | 193,252,248,137,44,36,141,144,233,137,133,233,139,73,252,248,59,149,233,15, | ||
| 341 | 135,244,251,252,255,145,233,133,192,15,133,244,249,248,1,139,141,233,139, | ||
| 342 | 133,233,41,200,193,232,3,131,192,1,139,105,252,248,139,84,36,8,1,202,57,113, | ||
| 343 | 252,252,15,133,244,248,252,255,165,233,248,2,129,121,253,252,252,239,255, | ||
| 344 | 15,133,244,29,252,255,165,233,248,3,139,141,233,139,84,36,8,1,202,252,233, | ||
| 345 | 244,67,248,5,199,68,36,4,237,232,251,1,0,252,233,244,1,248,64,93,137,108, | ||
| 346 | 36,8,139,108,36,48,41,202,137,84,36,4,137,113,252,252,137,116,36,24,137,141, | ||
| 347 | 233,141,68,193,252,248,137,44,36,137,133,233,232,251,1,19,139,141,233,139, | ||
| 348 | 133,233,41,200,193,232,3,131,192,1,139,113,252,252,139,84,36,4,1,202,139, | ||
| 349 | 108,36,8,85,139,105,252,248,195,248,134,255,15,182,131,233,168,235,15,133, | ||
| 350 | 244,251,168,235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252, | ||
| 351 | 233,244,247,255,248,135,15,182,131,233,168,235,15,133,244,251,168,235,15, | ||
| 352 | 132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248,1,139, | ||
| 353 | 108,36,48,139,68,36,20,137,68,36,8,137,149,233,137,116,36,4,137,44,36,232, | ||
| 354 | 251,1,20,248,4,139,149,233,15,182,78,252,253,248,5,15,182,110,252,252,15, | ||
| 355 | 183,70,252,254,252,255,164,253,171,233,248,136,255,139,108,36,48,141,139, | ||
| 356 | 233,137,116,36,4,137,12,36,137,171,233,137,116,36,24,137,149,233,232,251, | ||
| 357 | 1,21,252,233,244,4,255,248,137,255,139,108,36,48,141,139,233,137,116,36,4, | ||
| 358 | 137,12,36,137,171,233,137,116,36,24,137,149,233,232,251,1,21,139,149,233, | ||
| 359 | 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,138, | ||
| 360 | 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, | ||
| 361 | 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, | ||
| 362 | 233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242, | ||
| 363 | 15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101, | ||
| 364 | 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242, | ||
| 365 | 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,141,68,36,16,137,149, | ||
| 366 | 233,141,139,233,137,68,36,4,137,12,36,232,251,1,22,137,196,139,149,233,139, | ||
| 367 | 116,36,24,137,108,36,48,255,248,139,255,139,122,252,248,139,191,233,139,191, | ||
| 368 | 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198, | ||
| 369 | 4,193,232,16,252,255,36,171,255,248,79,217,124,36,4,137,68,36,8,102,184,0, | ||
| 370 | 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, | ||
| 371 | 252,252,217,108,36,4,139,68,36,8,195,248,81,217,124,36,4,137,68,36,8,102, | ||
| 372 | 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36, | ||
| 373 | 6,217,252,252,217,108,36,4,139,68,36,8,195,248,102,217,124,36,4,137,68,36, | ||
| 374 | 8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217, | ||
| 375 | 108,36,4,139,68,36,8,195,248,140,217,193,216,252,241,217,124,36,4,102,184, | ||
| 376 | 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, | ||
| 377 | 252,252,217,108,36,4,222,201,222,252,233,195,248,86,217,252,234,222,201,248, | ||
| 378 | 141,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0, | ||
| 379 | 128,252,255,15,132,244,248,248,142,217,192,217,252,252,220,252,233,217,201, | ||
| 380 | 217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217, | ||
| 381 | 252,238,195,248,105,219,84,36,4,219,68,36,4,255,223,252,233,255,80,221,252, | ||
| 382 | 233,223,224,158,88,255,15,133,244,254,15,138,244,255,221,216,248,143,80,139, | ||
| 383 | 68,36,8,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216, | ||
| 384 | 200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216, | ||
| 385 | 200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222, | ||
| 386 | 201,248,5,88,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252, | ||
| 387 | 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,88, | ||
| 388 | 195,248,8,80,217,84,36,8,217,201,217,84,36,12,139,68,36,8,209,224,61,0,0, | ||
| 389 | 0,252,255,15,132,244,248,139,68,36,12,209,224,15,132,244,250,61,0,0,0,252, | ||
| 390 | 255,15,132,244,250,88,217,252,241,252,233,244,142,248,9,217,232,255,223,252, | ||
| 391 | 234,255,80,221,252,234,223,224,158,88,255,15,132,244,247,217,201,248,1,221, | ||
| 392 | 216,195,248,2,217,225,217,232,255,221,252,233,223,224,158,255,15,132,244, | ||
| 393 | 249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,8, | ||
| 394 | 15,137,244,249,217,201,248,3,221,217,217,225,88,195,248,4,131,124,36,8,0, | ||
| 395 | 15,141,244,3,221,216,221,216,133,192,88,15,132,244,251,217,252,238,195,248, | ||
| 396 | 5,199,68,36,8,0,0,128,127,217,68,36,8,195,248,144,139,68,36,12,221,68,36, | ||
| 397 | 4,131,252,248,1,15,130,244,79,15,132,244,81,131,252,248,3,15,130,244,102, | ||
| 398 | 15,135,244,247,217,252,250,195,248,1,131,252,248,5,15,130,244,86,255,15,132, | ||
| 399 | 244,141,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217, | ||
| 400 | 252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15, | ||
| 401 | 132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, | ||
| 402 | 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255, | ||
| 403 | 195,248,1,217,252,242,221,216,195,248,9,204,248,145,139,68,36,20,221,68,36, | ||
| 404 | 4,221,68,36,12,131,252,248,1,15,132,244,247,255,15,135,244,248,222,193,195, | ||
| 405 | 248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222, | ||
| 406 | 201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,140,15,132,244, | ||
| 407 | 105,131,252,248,7,15,132,244,247,15,135,244,248,221,216,217,224,195,248,1, | ||
| 408 | 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,255, | ||
| 409 | 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, | ||
| 410 | 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, | ||
| 411 | 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, | ||
| 412 | 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, | ||
| 413 | 244,248,217,201,248,2,221,216,195,255,248,9,204,248,146,156,90,137,209,129, | ||
| 414 | 252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87, | ||
| 415 | 83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195, | ||
| 416 | 255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15, | ||
| 417 | 135,244,41,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218, | ||
| 418 | 252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183, | ||
| 419 | 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198, | ||
| 420 | 4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,15, | ||
| 421 | 135,244,251,129,124,253,202,4,239,15,135,244,251,221,4,202,221,4,194,255, | ||
| 422 | 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, | ||
| 423 | 15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, | ||
| 424 | 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, | ||
| 425 | 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, | ||
| 426 | 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, | ||
| 427 | 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, | ||
| 428 | 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, | ||
| 429 | 4,129,124,253,202,4,239,15,135,244,248,221,4,202,221,4,199,255,252,247,208, | ||
| 430 | 131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15, | ||
| 431 | 131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255, | ||
| 432 | 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, | ||
| 433 | 198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4, | ||
| 434 | 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
| 435 | 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182, | ||
| 436 | 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4, | ||
| 437 | 239,15,135,244,48,221,4,194,217,224,221,28,202,139,6,15,182,204,15,182,232, | ||
| 438 | 131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244, | ||
| 439 | 248,139,4,194,219,128,233,248,1,221,28,202,139,6,15,182,204,15,182,232,131, | ||
| 440 | 198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,50, | ||
| 441 | 139,12,194,137,213,232,251,1,18,137,4,36,137,252,234,219,4,36,15,182,78,252, | ||
| 442 | 253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4, | ||
| 443 | 239,15,135,244,46,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15, | ||
| 444 | 135,244,47,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244, | ||
| 445 | 49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,220,4,194,255,129,124, | ||
| 446 | 253,252,234,4,239,15,135,244,46,221,4,252,234,220,36,199,255,129,124,253, | ||
| 447 | 252,234,4,239,15,135,244,47,221,4,199,220,36,252,234,255,129,124,253,252, | ||
| 448 | 234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234, | ||
| 449 | 220,36,194,255,129,124,253,252,234,4,239,15,135,244,46,221,4,252,234,220, | ||
| 450 | 12,199,255,129,124,253,252,234,4,239,15,135,244,47,221,4,199,220,12,252,234, | ||
| 451 | 255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135, | ||
| 452 | 244,49,221,4,252,234,220,12,194,255,129,124,253,252,234,4,239,15,135,244, | ||
| 453 | 46,221,4,252,234,220,52,199,255,129,124,253,252,234,4,239,15,135,244,47,221, | ||
| 454 | 4,199,220,52,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124, | ||
| 455 | 253,194,4,239,15,135,244,49,221,4,252,234,220,52,194,255,129,124,253,252, | ||
| 456 | 234,4,239,15,135,244,46,221,4,252,234,221,4,199,255,129,124,253,252,234,4, | ||
| 457 | 239,15,135,244,47,221,4,199,221,4,252,234,255,129,124,253,252,234,4,239,15, | ||
| 458 | 135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,221,4,194,255, | ||
| 459 | 248,147,232,244,140,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193, | ||
| 460 | 232,16,252,255,36,171,255,252,233,244,147,255,232,244,105,221,28,202,139, | ||
| 461 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,182,252, | ||
| 462 | 236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36, | ||
| 463 | 48,137,44,36,137,116,36,24,137,149,233,232,251,1,23,139,149,233,133,192,15, | ||
| 464 | 133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252, | ||
| 465 | 234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232, | ||
| 466 | 16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139, | ||
| 467 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,223,70,252, | ||
| 468 | 254,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, | ||
| 469 | 171,255,221,4,199,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232, | ||
| 470 | 16,252,255,36,171,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232, | ||
| 471 | 131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237, | ||
| 472 | 137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204, | ||
| 473 | 15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172, | ||
| 474 | 253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6, | ||
| 475 | 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252, | ||
| 476 | 248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4, | ||
| 477 | 137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1, | ||
| 478 | 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129, | ||
| 479 | 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135, | ||
| 480 | 213,141,139,233,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,139, | ||
| 481 | 106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237, | ||
| 482 | 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131, | ||
| 483 | 198,4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128, | ||
| 484 | 189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234, | ||
| 485 | 252,233,244,1,255,139,106,252,248,221,4,199,139,172,253,141,233,139,141,233, | ||
| 486 | 221,25,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, | ||
| 487 | 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139, | ||
| 488 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,180,253, | ||
| 489 | 134,233,139,108,36,48,131,189,233,0,15,132,244,247,141,12,202,137,76,36,4, | ||
| 490 | 137,44,36,137,149,233,232,251,1,25,139,149,233,248,1,139,6,15,182,204,15, | ||
| 491 | 182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248, | ||
| 492 | 139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,116,36,24,137,44,36,137, | ||
| 493 | 149,233,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4, | ||
| 494 | 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137, | ||
| 495 | 197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,148,209,137,108,36, | ||
| 496 | 8,1,200,139,108,36,48,1,200,137,68,36,4,137,116,36,24,139,139,233,137,44, | ||
| 497 | 36,59,139,233,137,149,233,15,131,244,248,248,1,232,251,1,27,139,149,233,15, | ||
| 498 | 182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131, | ||
| 499 | 198,4,193,232,16,252,255,36,171,248,2,137,252,233,232,251,1,28,252,233,244, | ||
| 500 | 1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137, | ||
| 501 | 149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29,139,149, | ||
| 502 | 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, | ||
| 503 | 232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,28,15, | ||
| 504 | 183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248, | ||
| 505 | 139,173,233,139,4,135,252,233,244,148,255,252,247,208,139,106,252,248,139, | ||
| 506 | 173,233,139,4,135,252,233,244,149,255,15,182,252,236,15,182,192,129,124,253, | ||
| 507 | 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244, | ||
| 508 | 251,221,4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,36,59,133,233,15, | ||
| 509 | 131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139, | ||
| 510 | 40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4, | ||
| 511 | 193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252, | ||
| 512 | 246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,129,124, | ||
| 513 | 253,194,4,239,255,15,133,244,36,139,4,194,252,233,244,148,255,15,182,252, | ||
| 514 | 236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244, | ||
| 515 | 34,139,44,252,234,248,148,139,141,233,35,136,233,105,201,239,3,141,233,248, | ||
| 516 | 1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4, | ||
| 517 | 239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,137, | ||
| 518 | 76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
| 519 | 248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,255,139,137,233,133,201, | ||
| 520 | 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15, | ||
| 521 | 133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234, | ||
| 522 | 4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133, | ||
| 523 | 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, | ||
| 524 | 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
| 525 | 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244, | ||
| 526 | 35,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,129,124, | ||
| 527 | 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135, | ||
| 528 | 244,251,221,4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,39,59,133,233, | ||
| 529 | 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1, | ||
| 530 | 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104, | ||
| 531 | 4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
| 532 | 3,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,39, | ||
| 533 | 255,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244, | ||
| 534 | 39,139,4,194,252,233,244,149,248,7,128,165,233,235,139,139,233,137,171,233, | ||
| 535 | 137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192, | ||
| 536 | 252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252, | ||
| 537 | 234,248,149,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248, | ||
| 538 | 1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4, | ||
| 539 | 239,15,132,244,250,248,2,252,246,133,233,235,255,15,133,244,253,248,3,15, | ||
| 540 | 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15, | ||
| 541 | 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244, | ||
| 542 | 2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,37,139,12,36,252,233, | ||
| 543 | 244,2,248,5,139,137,233,133,201,15,133,244,1,139,141,233,133,201,15,132,244, | ||
| 544 | 252,252,246,129,233,235,255,15,132,244,37,248,6,137,68,36,16,199,68,36,20, | ||
| 545 | 237,141,68,36,16,137,108,36,12,137,108,36,4,139,108,36,48,137,68,36,8,137, | ||
| 546 | 44,36,137,116,36,24,137,149,233,232,251,1,30,139,149,233,139,108,36,12,137, | ||
| 547 | 193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233, | ||
| 548 | 252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, | ||
| 549 | 133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129, | ||
| 550 | 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, | ||
| 551 | 2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131, | ||
| 552 | 198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141, | ||
| 553 | 233,252,246,129,233,235,255,15,132,244,38,15,182,78,252,253,252,233,244,1, | ||
| 554 | 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253, | ||
| 555 | 252,233,244,2,255,137,124,36,16,221,4,199,219,92,36,12,248,1,141,12,202,139, | ||
| 556 | 105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20,139,124, | ||
| 557 | 36,12,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252, | ||
| 558 | 248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4, | ||
| 559 | 131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15, | ||
| 560 | 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36, | ||
| 561 | 48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,31,139,149,233, | ||
| 562 | 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,255,139,131,233,137, | ||
| 563 | 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,141,76,202,8,139,105, | ||
| 564 | 252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,255,141,76, | ||
| 565 | 202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,51, | ||
| 566 | 139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, | ||
| 567 | 68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4, | ||
| 568 | 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,137,209, | ||
| 569 | 128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,248,5,252, | ||
| 570 | 247,198,237,15,133,244,4,255,15,182,70,252,253,252,247,208,141,20,194,139, | ||
| 571 | 122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244,1,131, | ||
| 572 | 230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141,76,202, | ||
| 573 | 8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244, | ||
| 574 | 137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252, | ||
| 575 | 129,252,248,239,184,3,0,0,0,15,133,244,29,252,255,165,233,255,15,182,252, | ||
| 576 | 236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,36,8,141, | ||
| 577 | 188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233, | ||
| 578 | 252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131, | ||
| 579 | 199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248, | ||
| 580 | 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,8,139,6, | ||
| 581 | 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36, | ||
| 582 | 20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,137,108, | ||
| 583 | 36,4,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253, | ||
| 584 | 248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193, | ||
| 585 | 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116, | ||
| 586 | 36,24,41,215,137,44,36,232,251,1,0,139,149,233,139,141,233,1,215,252,233, | ||
| 587 | 244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237, | ||
| 588 | 15,133,244,253,255,248,17,137,215,131,232,1,15,132,244,249,248,2,139,44,15, | ||
| 589 | 137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244, | ||
| 590 | 2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139, | ||
| 591 | 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255, | ||
| 592 | 15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122,252,248, | ||
| 593 | 139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, | ||
| 594 | 252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252, | ||
| 595 | 244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,18,131,230,252,248,41, | ||
| 596 | 252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131,172, | ||
| 597 | 253,43,233,1,15,132,244,136,255,141,12,202,255,129,121,253,4,239,15,135,244, | ||
| 598 | 52,129,121,253,12,239,15,135,244,52,255,139,105,20,255,129,252,253,239,15, | ||
| 599 | 135,244,52,255,221,65,8,221,1,255,220,65,16,221,17,255,221,81,24,133,252, | ||
| 600 | 237,15,136,244,247,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248, | ||
| 601 | 141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245, | ||
| 602 | 255,15,130,244,248,141,180,253,134,233,255,141,12,202,139,105,4,129,252,253, | ||
| 603 | 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, | ||
| 604 | 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, | ||
| 605 | 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, | ||
| 606 | 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, | ||
| 607 | 252,255,36,171,255,254,0 | ||
| 608 | }; | ||
| 609 | |||
| 610 | enum { | ||
| 611 | GLOB_gate_lf, | ||
| 612 | GLOB_gate_lf_growstack, | ||
| 613 | GLOB_gate_lv, | ||
| 614 | GLOB_gate_lv_growstack, | ||
| 615 | GLOB_gate_cwrap, | ||
| 616 | GLOB_gate_c_growstack, | ||
| 617 | GLOB_vm_returnc, | ||
| 618 | GLOB_BC_RET_Z, | ||
| 619 | GLOB_vm_return, | ||
| 620 | GLOB_gate_c, | ||
| 621 | GLOB_vm_returnp, | ||
| 622 | GLOB_vm_leave_cp, | ||
| 623 | GLOB_vm_leave_unw, | ||
| 624 | GLOB_vm_unwind_c, | ||
| 625 | GLOB_vm_unwind_ff, | ||
| 626 | GLOB_cont_dispatch, | ||
| 627 | GLOB_vm_resume, | ||
| 628 | GLOB_vm_pcall, | ||
| 629 | GLOB_vm_call, | ||
| 630 | GLOB_vmeta_call, | ||
| 631 | GLOB_vm_cpcall, | ||
| 632 | GLOB_cont_cat, | ||
| 633 | GLOB_cont_ra, | ||
| 634 | GLOB_BC_CAT_Z, | ||
| 635 | GLOB_vmeta_tgets, | ||
| 636 | GLOB_vmeta_tgetb, | ||
| 637 | GLOB_vmeta_tgetv, | ||
| 638 | GLOB_vmeta_tsets, | ||
| 639 | GLOB_vmeta_tsetb, | ||
| 640 | GLOB_vmeta_tsetv, | ||
| 641 | GLOB_cont_nop, | ||
| 642 | GLOB_vmeta_comp, | ||
| 643 | GLOB_vmeta_binop, | ||
| 644 | GLOB_cont_condt, | ||
| 645 | GLOB_cont_condf, | ||
| 646 | GLOB_vmeta_equal, | ||
| 647 | GLOB_vmeta_arith_vn, | ||
| 648 | GLOB_vmeta_arith_nv, | ||
| 649 | GLOB_vmeta_unm, | ||
| 650 | GLOB_vmeta_arith_vv, | ||
| 651 | GLOB_vmeta_len, | ||
| 652 | GLOB_BC_CALLT_Z, | ||
| 653 | GLOB_vmeta_for, | ||
| 654 | GLOB_ff_assert, | ||
| 655 | GLOB_fff_fallback, | ||
| 656 | GLOB_fff_res_, | ||
| 657 | GLOB_ff_type, | ||
| 658 | GLOB_fff_res1, | ||
| 659 | GLOB_ff_getmetatable, | ||
| 660 | GLOB_ff_setmetatable, | ||
| 661 | GLOB_ff_rawget, | ||
| 662 | GLOB_ff_tonumber, | ||
| 663 | GLOB_fff_resn, | ||
| 664 | GLOB_ff_tostring, | ||
| 665 | GLOB_fff_gcstep, | ||
| 666 | GLOB_ff_next, | ||
| 667 | GLOB_fff_res2, | ||
| 668 | GLOB_fff_res, | ||
| 669 | GLOB_ff_pairs, | ||
| 670 | GLOB_ff_ipairs_aux, | ||
| 671 | GLOB_fff_res0, | ||
| 672 | GLOB_ff_ipairs, | ||
| 673 | GLOB_ff_pcall, | ||
| 674 | GLOB_ff_xpcall, | ||
| 675 | GLOB_ff_coroutine_resume, | ||
| 676 | GLOB_ff_coroutine_wrap_aux, | ||
| 677 | GLOB_ff_coroutine_yield, | ||
| 678 | GLOB_ff_math_abs, | ||
| 679 | GLOB_ff_math_floor, | ||
| 680 | GLOB_vm_floor, | ||
| 681 | GLOB_ff_math_ceil, | ||
| 682 | GLOB_vm_ceil, | ||
| 683 | GLOB_ff_math_sqrt, | ||
| 684 | GLOB_ff_math_log, | ||
| 685 | GLOB_ff_math_log10, | ||
| 686 | GLOB_ff_math_exp, | ||
| 687 | GLOB_vm_exp, | ||
| 688 | GLOB_ff_math_sin, | ||
| 689 | GLOB_ff_math_cos, | ||
| 690 | GLOB_ff_math_tan, | ||
| 691 | GLOB_ff_math_asin, | ||
| 692 | GLOB_ff_math_acos, | ||
| 693 | GLOB_ff_math_atan, | ||
| 694 | GLOB_ff_math_sinh, | ||
| 695 | GLOB_ff_math_cosh, | ||
| 696 | GLOB_ff_math_tanh, | ||
| 697 | GLOB_ff_math_deg, | ||
| 698 | GLOB_ff_math_rad, | ||
| 699 | GLOB_ff_math_atan2, | ||
| 700 | GLOB_ff_math_ldexp, | ||
| 701 | GLOB_ff_math_frexp, | ||
| 702 | GLOB_ff_math_modf, | ||
| 703 | GLOB_vm_trunc, | ||
| 704 | GLOB_ff_math_fmod, | ||
| 705 | GLOB_ff_math_pow, | ||
| 706 | GLOB_vm_pow, | ||
| 707 | GLOB_ff_math_min, | ||
| 708 | GLOB_ff_math_max, | ||
| 709 | GLOB_ff_string_len, | ||
| 710 | GLOB_ff_string_byte, | ||
| 711 | GLOB_ff_string_char, | ||
| 712 | GLOB_fff_newstr, | ||
| 713 | GLOB_ff_string_sub, | ||
| 714 | GLOB_fff_emptystr, | ||
| 715 | GLOB_ff_string_rep, | ||
| 716 | GLOB_fff_fallback_2, | ||
| 717 | GLOB_ff_string_reverse, | ||
| 718 | GLOB_fff_fallback_1, | ||
| 719 | GLOB_ff_string_lower, | ||
| 720 | GLOB_ff_string_upper, | ||
| 721 | GLOB_ff_table_getn, | ||
| 722 | GLOB_ff_bit_tobit, | ||
| 723 | GLOB_ff_bit_band, | ||
| 724 | GLOB_fff_resbit, | ||
| 725 | GLOB_fff_fallback_bit_op, | ||
| 726 | GLOB_ff_bit_bor, | ||
| 727 | GLOB_ff_bit_bxor, | ||
| 728 | GLOB_ff_bit_bswap, | ||
| 729 | GLOB_ff_bit_bnot, | ||
| 730 | GLOB_ff_bit_lshift, | ||
| 731 | GLOB_ff_bit_rshift, | ||
| 732 | GLOB_ff_bit_arshift, | ||
| 733 | GLOB_ff_bit_rol, | ||
| 734 | GLOB_ff_bit_ror, | ||
| 735 | GLOB_vm_record, | ||
| 736 | GLOB_vm_hook, | ||
| 737 | GLOB_vm_hotloop, | ||
| 738 | GLOB_vm_hotcall, | ||
| 739 | GLOB_vm_exit_handler, | ||
| 740 | GLOB_vm_exit_interp, | ||
| 741 | GLOB_vm_mod, | ||
| 742 | GLOB_vm_exp2, | ||
| 743 | GLOB_vm_exp2raw, | ||
| 744 | GLOB_vm_powi, | ||
| 745 | GLOB_vm_foldfpm, | ||
| 746 | GLOB_vm_foldarith, | ||
| 747 | GLOB_vm_cpuid, | ||
| 748 | GLOB_BC_MODVN_Z, | ||
| 749 | GLOB_BC_TGETS_Z, | ||
| 750 | GLOB_BC_TSETS_Z, | ||
| 751 | GLOB__MAX | ||
| 752 | }; | ||
| 753 | static const char *const globnames[] = { | ||
| 754 | "gate_lf", | ||
| 755 | "gate_lf_growstack", | ||
| 756 | "gate_lv", | ||
| 757 | "gate_lv_growstack", | ||
| 758 | "gate_cwrap", | ||
| 759 | "gate_c_growstack", | ||
| 760 | "vm_returnc", | ||
| 761 | "BC_RET_Z", | ||
| 762 | "vm_return", | ||
| 763 | "gate_c", | ||
| 764 | "vm_returnp", | ||
| 765 | "vm_leave_cp", | ||
| 766 | "vm_leave_unw", | ||
| 767 | "vm_unwind_c", | ||
| 768 | "vm_unwind_ff", | ||
| 769 | "cont_dispatch", | ||
| 770 | "vm_resume", | ||
| 771 | "vm_pcall", | ||
| 772 | "vm_call", | ||
| 773 | "vmeta_call", | ||
| 774 | "vm_cpcall", | ||
| 775 | "cont_cat", | ||
| 776 | "cont_ra", | ||
| 777 | "BC_CAT_Z", | ||
| 778 | "vmeta_tgets", | ||
| 779 | "vmeta_tgetb", | ||
| 780 | "vmeta_tgetv", | ||
| 781 | "vmeta_tsets", | ||
| 782 | "vmeta_tsetb", | ||
| 783 | "vmeta_tsetv", | ||
| 784 | "cont_nop", | ||
| 785 | "vmeta_comp", | ||
| 786 | "vmeta_binop", | ||
| 787 | "cont_condt", | ||
| 788 | "cont_condf", | ||
| 789 | "vmeta_equal", | ||
| 790 | "vmeta_arith_vn", | ||
| 791 | "vmeta_arith_nv", | ||
| 792 | "vmeta_unm", | ||
| 793 | "vmeta_arith_vv", | ||
| 794 | "vmeta_len", | ||
| 795 | "BC_CALLT_Z", | ||
| 796 | "vmeta_for", | ||
| 797 | "ff_assert", | ||
| 798 | "fff_fallback", | ||
| 799 | "fff_res_", | ||
| 800 | "ff_type", | ||
| 801 | "fff_res1", | ||
| 802 | "ff_getmetatable", | ||
| 803 | "ff_setmetatable", | ||
| 804 | "ff_rawget", | ||
| 805 | "ff_tonumber", | ||
| 806 | "fff_resn", | ||
| 807 | "ff_tostring", | ||
| 808 | "fff_gcstep", | ||
| 809 | "ff_next", | ||
| 810 | "fff_res2", | ||
| 811 | "fff_res", | ||
| 812 | "ff_pairs", | ||
| 813 | "ff_ipairs_aux", | ||
| 814 | "fff_res0", | ||
| 815 | "ff_ipairs", | ||
| 816 | "ff_pcall", | ||
| 817 | "ff_xpcall", | ||
| 818 | "ff_coroutine_resume", | ||
| 819 | "ff_coroutine_wrap_aux", | ||
| 820 | "ff_coroutine_yield", | ||
| 821 | "ff_math_abs", | ||
| 822 | "ff_math_floor", | ||
| 823 | "vm_floor", | ||
| 824 | "ff_math_ceil", | ||
| 825 | "vm_ceil", | ||
| 826 | "ff_math_sqrt", | ||
| 827 | "ff_math_log", | ||
| 828 | "ff_math_log10", | ||
| 829 | "ff_math_exp", | ||
| 830 | "vm_exp", | ||
| 831 | "ff_math_sin", | ||
| 832 | "ff_math_cos", | ||
| 833 | "ff_math_tan", | ||
| 834 | "ff_math_asin", | ||
| 835 | "ff_math_acos", | ||
| 836 | "ff_math_atan", | ||
| 837 | "ff_math_sinh", | ||
| 838 | "ff_math_cosh", | ||
| 839 | "ff_math_tanh", | ||
| 840 | "ff_math_deg", | ||
| 841 | "ff_math_rad", | ||
| 842 | "ff_math_atan2", | ||
| 843 | "ff_math_ldexp", | ||
| 844 | "ff_math_frexp", | ||
| 845 | "ff_math_modf", | ||
| 846 | "vm_trunc", | ||
| 847 | "ff_math_fmod", | ||
| 848 | "ff_math_pow", | ||
| 849 | "vm_pow", | ||
| 850 | "ff_math_min", | ||
| 851 | "ff_math_max", | ||
| 852 | "ff_string_len", | ||
| 853 | "ff_string_byte", | ||
| 854 | "ff_string_char", | ||
| 855 | "fff_newstr", | ||
| 856 | "ff_string_sub", | ||
| 857 | "fff_emptystr", | ||
| 858 | "ff_string_rep", | ||
| 859 | "fff_fallback_2", | ||
| 860 | "ff_string_reverse", | ||
| 861 | "fff_fallback_1", | ||
| 862 | "ff_string_lower", | ||
| 863 | "ff_string_upper", | ||
| 864 | "ff_table_getn", | ||
| 865 | "ff_bit_tobit", | ||
| 866 | "ff_bit_band", | ||
| 867 | "fff_resbit", | ||
| 868 | "fff_fallback_bit_op", | ||
| 869 | "ff_bit_bor", | ||
| 870 | "ff_bit_bxor", | ||
| 871 | "ff_bit_bswap", | ||
| 872 | "ff_bit_bnot", | ||
| 873 | "ff_bit_lshift", | ||
| 874 | "ff_bit_rshift", | ||
| 875 | "ff_bit_arshift", | ||
| 876 | "ff_bit_rol", | ||
| 877 | "ff_bit_ror", | ||
| 878 | "vm_record", | ||
| 879 | "vm_hook", | ||
| 880 | "vm_hotloop", | ||
| 881 | "vm_hotcall", | ||
| 882 | "vm_exit_handler", | ||
| 883 | "vm_exit_interp", | ||
| 884 | "vm_mod", | ||
| 885 | "vm_exp2", | ||
| 886 | "vm_exp2raw", | ||
| 887 | "vm_powi", | ||
| 888 | "vm_foldfpm", | ||
| 889 | "vm_foldarith", | ||
| 890 | "vm_cpuid", | ||
| 891 | "BC_MODVN_Z", | ||
| 892 | "BC_TGETS_Z", | ||
| 893 | "BC_TSETS_Z", | ||
| 894 | (const char *)0 | ||
| 895 | }; | ||
| 896 | static const char *const extnames[] = { | ||
| 897 | "lj_state_growstack", | ||
| 898 | "lj_meta_tget", | ||
| 899 | "lj_meta_tset", | ||
| 900 | "lj_meta_comp", | ||
| 901 | "lj_meta_equal", | ||
| 902 | "lj_meta_arith", | ||
| 903 | "lj_meta_len", | ||
| 904 | "lj_meta_call", | ||
| 905 | "lj_meta_for", | ||
| 906 | "lj_tab_get", | ||
| 907 | "lj_str_fromnum@8", | ||
| 908 | "lj_tab_next", | ||
| 909 | "lj_tab_getinth", | ||
| 910 | "lj_ffh_coroutine_wrap_err", | ||
| 911 | "lj_wrapper_sinh", | ||
| 912 | "lj_wrapper_cosh", | ||
| 913 | "lj_wrapper_tanh", | ||
| 914 | "lj_str_new", | ||
| 915 | "lj_tab_len@4", | ||
| 916 | "lj_gc_step", | ||
| 917 | "lj_dispatch_ins", | ||
| 918 | "lj_trace_hot", | ||
| 919 | "lj_trace_exit", | ||
| 920 | "lj_meta_cat", | ||
| 921 | "lj_gc_barrieruv@8", | ||
| 922 | "lj_func_closeuv", | ||
| 923 | "lj_func_newL_gc", | ||
| 924 | "lj_tab_new", | ||
| 925 | "lj_gc_step_fixtop@4", | ||
| 926 | "lj_tab_dup@8", | ||
| 927 | "lj_tab_newkey", | ||
| 928 | "lj_tab_reasize", | ||
| 929 | (const char *)0 | ||
| 930 | }; | ||
| 931 | #define Dt1(_V) (int)(ptrdiff_t)&(((lua_State *)0)_V) | ||
| 932 | #define Dt2(_V) (int)(ptrdiff_t)&(((global_State *)0)_V) | ||
| 933 | #define Dt3(_V) (int)(ptrdiff_t)&(((TValue *)0)_V) | ||
| 934 | #define Dt4(_V) (int)(ptrdiff_t)&(((GCobj *)0)_V) | ||
| 935 | #define Dt5(_V) (int)(ptrdiff_t)&(((GCstr *)0)_V) | ||
| 936 | #define Dt6(_V) (int)(ptrdiff_t)&(((GCtab *)0)_V) | ||
| 937 | #define Dt7(_V) (int)(ptrdiff_t)&(((GCfuncL *)0)_V) | ||
| 938 | #define Dt8(_V) (int)(ptrdiff_t)&(((GCfuncC *)0)_V) | ||
| 939 | #define Dt9(_V) (int)(ptrdiff_t)&(((GCproto *)0)_V) | ||
| 940 | #define DtA(_V) (int)(ptrdiff_t)&(((GCupval *)0)_V) | ||
| 941 | #define DtB(_V) (int)(ptrdiff_t)&(((Node *)0)_V) | ||
| 942 | #define DtC(_V) (int)(ptrdiff_t)&(((int *)0)_V) | ||
| 943 | #define DtD(_V) (int)(ptrdiff_t)&(((Trace *)0)_V) | ||
| 944 | #define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) | ||
| 945 | #define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) | ||
| 946 | #define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) | ||
| 947 | |||
| 948 | /* Generate subroutines used by opcodes and other parts of the VM. */ | ||
| 949 | /* The .code_sub section should be last to help static branch prediction. */ | ||
| 950 | static void build_subroutines(BuildCtx *ctx, int cmov) | ||
| 951 | { | ||
| 952 | dasm_put(Dst, 0); | ||
| 953 | dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), Dt9(->bc), Dt9(->k), Dt1(->maxstack), LJ_TNIL); | ||
| 954 | #if LJ_HASJIT | ||
| 955 | #endif | ||
| 956 | dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), Dt9(->bc), Dt9(->k)); | ||
| 957 | dasm_put(Dst, 203, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE, Dt8(->f), Dt1(->base)); | ||
| 958 | dasm_put(Dst, 309, 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C); | ||
| 959 | dasm_put(Dst, 398, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); | ||
| 960 | dasm_put(Dst, 511, Dt1(->top), Dt1(->top), CFRAME_RAWMASK, Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE); | ||
| 961 | dasm_put(Dst, 628, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, FRAME_P, LJ_TTRUE, LUA_MINSTACK, Dt9(->bc), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
| 962 | dasm_put(Dst, 743, Dt7(->gate), FRAME_C, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_CP); | ||
| 963 | dasm_put(Dst, 872, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe)); | ||
| 964 | dasm_put(Dst, 1035, FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); | ||
| 965 | dasm_put(Dst, 1203, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv), LJ_TTAB); | ||
| 966 | dasm_put(Dst, 1392, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base), -BCBIAS_J*4); | ||
| 967 | dasm_put(Dst, 1610, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); | ||
| 968 | dasm_put(Dst, 1734, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate)); | ||
| 969 | dasm_put(Dst, 1940, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); | ||
| 970 | dasm_put(Dst, 2083); | ||
| 971 | if (cmov) { | ||
| 972 | dasm_put(Dst, 2089); | ||
| 973 | } else { | ||
| 974 | dasm_put(Dst, 2093); | ||
| 975 | } | ||
| 976 | dasm_put(Dst, 2102, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node)); | ||
| 977 | dasm_put(Dst, 2200, DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL, LJ_TUDATA); | ||
| 978 | dasm_put(Dst, 2271, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB); | ||
| 979 | dasm_put(Dst, 2345, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1); | ||
| 980 | dasm_put(Dst, 2457, LJ_TISNUM, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM])); | ||
| 981 | dasm_put(Dst, 2528, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), 1+1, LJ_TTAB); | ||
| 982 | dasm_put(Dst, 2612, Dt1(->base), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); | ||
| 983 | dasm_put(Dst, 2738, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM, Dt6(->asize), Dt6(->array), LJ_TNIL); | ||
| 984 | dasm_put(Dst, 2834, Dt6(->hmask), 1+0, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, 1+3); | ||
| 985 | dasm_put(Dst, 2938, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate), 2+1, LJ_TFUNC); | ||
| 986 | dasm_put(Dst, 3020, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); | ||
| 987 | dasm_put(Dst, 3120, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); | ||
| 988 | dasm_put(Dst, 3241, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); | ||
| 989 | dasm_put(Dst, 3355, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD); | ||
| 990 | dasm_put(Dst, 3455, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); | ||
| 991 | dasm_put(Dst, 3567, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); | ||
| 992 | dasm_put(Dst, 3679, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_CANYIELD, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status), 1+1, LJ_TISNUM); | ||
| 993 | dasm_put(Dst, 3780, 1+1, FRAME_TYPE, LJ_TNIL, 1+1, LJ_TISNUM); | ||
| 994 | dasm_put(Dst, 3886, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
| 995 | dasm_put(Dst, 3947, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
| 996 | dasm_put(Dst, 4029, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
| 997 | dasm_put(Dst, 4095, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
| 998 | dasm_put(Dst, 4184, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
| 999 | dasm_put(Dst, 4293, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
| 1000 | dasm_put(Dst, 4399, Dt8(->upvalue[0]), 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM); | ||
| 1001 | dasm_put(Dst, 4472, LJ_TISNUM, 1+1, LJ_TISNUM, 1+2); | ||
| 1002 | dasm_put(Dst, 4612, 1+1, LJ_TISNUM, 1+2); | ||
| 1003 | dasm_put(Dst, 4730, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); | ||
| 1004 | dasm_put(Dst, 4817, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM); | ||
| 1005 | dasm_put(Dst, 4894); | ||
| 1006 | if (cmov) { | ||
| 1007 | dasm_put(Dst, 4901); | ||
| 1008 | } else { | ||
| 1009 | dasm_put(Dst, 4909); | ||
| 1010 | } | ||
| 1011 | dasm_put(Dst, 4930, 1+1, LJ_TISNUM, LJ_TISNUM); | ||
| 1012 | if (cmov) { | ||
| 1013 | dasm_put(Dst, 4990); | ||
| 1014 | } else { | ||
| 1015 | dasm_put(Dst, 4998); | ||
| 1016 | } | ||
| 1017 | dasm_put(Dst, 5019, 1+1, LJ_TSTR, Dt5(->len), 1+1, LJ_TSTR, Dt5(->len)); | ||
| 1018 | dasm_put(Dst, 5088, Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM, Dt1(->base)); | ||
| 1019 | dasm_put(Dst, 5196, Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM, LJ_TSTR); | ||
| 1020 | dasm_put(Dst, 5293, LJ_TISNUM, Dt5(->len), sizeof(GCstr)-1); | ||
| 1021 | dasm_put(Dst, 5399, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR); | ||
| 1022 | dasm_put(Dst, 5471, LJ_TISNUM, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), 1+1); | ||
| 1023 | dasm_put(Dst, 5563, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); | ||
| 1024 | dasm_put(Dst, 5657, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); | ||
| 1025 | dasm_put(Dst, 5743, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len)); | ||
| 1026 | dasm_put(Dst, 5821, DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1, LJ_TTAB); | ||
| 1027 | dasm_put(Dst, 5915, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
| 1028 | dasm_put(Dst, 6048, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM, 1+1); | ||
| 1029 | dasm_put(Dst, 6171, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
| 1030 | dasm_put(Dst, 6301, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); | ||
| 1031 | dasm_put(Dst, 6435, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); | ||
| 1032 | dasm_put(Dst, 6580, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); | ||
| 1033 | dasm_put(Dst, 6727, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base), Dt1(->top), Dt7(->gate), LJ_TFUNC); | ||
| 1034 | dasm_put(Dst, 6842, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
| 1035 | #if LJ_HASJIT | ||
| 1036 | dasm_put(Dst, 6960, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); | ||
| 1037 | #endif | ||
| 1038 | dasm_put(Dst, 6991, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4); | ||
| 1039 | #if LJ_HASJIT | ||
| 1040 | dasm_put(Dst, 7082, GG_DISP2J, DISPATCH_J(L), Dt1(->base)); | ||
| 1041 | #endif | ||
| 1042 | dasm_put(Dst, 7115); | ||
| 1043 | #if LJ_HASJIT | ||
| 1044 | dasm_put(Dst, 7118, GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->base)); | ||
| 1045 | #endif | ||
| 1046 | dasm_put(Dst, 7168); | ||
| 1047 | #if LJ_HASJIT | ||
| 1048 | dasm_put(Dst, 7171, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); | ||
| 1049 | #endif | ||
| 1050 | dasm_put(Dst, 7321); | ||
| 1051 | #if LJ_HASJIT | ||
| 1052 | dasm_put(Dst, 7324, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); | ||
| 1053 | #endif | ||
| 1054 | dasm_put(Dst, 7364); | ||
| 1055 | if (cmov) { | ||
| 1056 | dasm_put(Dst, 7628); | ||
| 1057 | } else { | ||
| 1058 | dasm_put(Dst, 7632); | ||
| 1059 | } | ||
| 1060 | dasm_put(Dst, 7641); | ||
| 1061 | dasm_put(Dst, 7718); | ||
| 1062 | if (cmov) { | ||
| 1063 | dasm_put(Dst, 7824); | ||
| 1064 | } else { | ||
| 1065 | dasm_put(Dst, 7828); | ||
| 1066 | } | ||
| 1067 | dasm_put(Dst, 7837); | ||
| 1068 | if (cmov) { | ||
| 1069 | dasm_put(Dst, 7628); | ||
| 1070 | } else { | ||
| 1071 | dasm_put(Dst, 7855); | ||
| 1072 | } | ||
| 1073 | dasm_put(Dst, 7862); | ||
| 1074 | dasm_put(Dst, 7991); | ||
| 1075 | dasm_put(Dst, 8107); | ||
| 1076 | dasm_put(Dst, 8196); | ||
| 1077 | if (cmov) { | ||
| 1078 | dasm_put(Dst, 8225); | ||
| 1079 | } else { | ||
| 1080 | dasm_put(Dst, 8244); | ||
| 1081 | } | ||
| 1082 | dasm_put(Dst, 8285); | ||
| 1083 | } | ||
| 1084 | |||
| 1085 | /* Generate the code for a single instruction. */ | ||
| 1086 | static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov) | ||
| 1087 | { | ||
| 1088 | int vk = 0; | ||
| 1089 | dasm_put(Dst, 8342, defop); | ||
| 1090 | |||
| 1091 | switch (op) { | ||
| 1092 | |||
| 1093 | /* -- Comparison ops ---------------------------------------------------- */ | ||
| 1094 | |||
| 1095 | /* Remember: all ops branch for a true comparison, fall through otherwise. */ | ||
| 1096 | |||
| 1097 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: | ||
| 1098 | dasm_put(Dst, 8344, LJ_TISNUM, LJ_TISNUM); | ||
| 1099 | if (cmov) { | ||
| 1100 | dasm_put(Dst, 8374); | ||
| 1101 | } else { | ||
| 1102 | dasm_put(Dst, 8380); | ||
| 1103 | } | ||
| 1104 | switch (op) { | ||
| 1105 | case BC_ISLT: | ||
| 1106 | dasm_put(Dst, 8387); | ||
| 1107 | break; | ||
| 1108 | case BC_ISGE: | ||
| 1109 | dasm_put(Dst, 8191); | ||
| 1110 | break; | ||
| 1111 | case BC_ISLE: | ||
| 1112 | dasm_put(Dst, 5738); | ||
| 1113 | break; | ||
| 1114 | case BC_ISGT: | ||
| 1115 | dasm_put(Dst, 8392); | ||
| 1116 | break; | ||
| 1117 | default: break; /* Shut up GCC. */ | ||
| 1118 | } | ||
| 1119 | dasm_put(Dst, 8397, -BCBIAS_J*4); | ||
| 1120 | break; | ||
| 1121 | |||
| 1122 | case BC_ISEQV: case BC_ISNEV: | ||
| 1123 | vk = op == BC_ISEQV; | ||
| 1124 | dasm_put(Dst, 8430, LJ_TISNUM, LJ_TISNUM); | ||
| 1125 | if (cmov) { | ||
| 1126 | dasm_put(Dst, 8374); | ||
| 1127 | } else { | ||
| 1128 | dasm_put(Dst, 8380); | ||
| 1129 | } | ||
| 1130 | iseqne_fp: | ||
| 1131 | if (vk) { | ||
| 1132 | dasm_put(Dst, 8462); | ||
| 1133 | } else { | ||
| 1134 | dasm_put(Dst, 8471); | ||
| 1135 | } | ||
| 1136 | iseqne_end: | ||
| 1137 | if (vk) { | ||
| 1138 | dasm_put(Dst, 8480, -BCBIAS_J*4); | ||
| 1139 | } else { | ||
| 1140 | dasm_put(Dst, 8495, -BCBIAS_J*4); | ||
| 1141 | } | ||
| 1142 | dasm_put(Dst, 7149); | ||
| 1143 | if (op == BC_ISEQV || op == BC_ISNEV) { | ||
| 1144 | dasm_put(Dst, 8510, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); | ||
| 1145 | if (vk) { | ||
| 1146 | dasm_put(Dst, 8568); | ||
| 1147 | } else { | ||
| 1148 | dasm_put(Dst, 8572); | ||
| 1149 | } | ||
| 1150 | dasm_put(Dst, 8578); | ||
| 1151 | } | ||
| 1152 | break; | ||
| 1153 | case BC_ISEQS: case BC_ISNES: | ||
| 1154 | vk = op == BC_ISEQS; | ||
| 1155 | dasm_put(Dst, 8583, LJ_TSTR); | ||
| 1156 | iseqne_test: | ||
| 1157 | if (vk) { | ||
| 1158 | dasm_put(Dst, 8466); | ||
| 1159 | } else { | ||
| 1160 | dasm_put(Dst, 8102); | ||
| 1161 | } | ||
| 1162 | goto iseqne_end; | ||
| 1163 | case BC_ISEQN: case BC_ISNEN: | ||
| 1164 | vk = op == BC_ISEQN; | ||
| 1165 | dasm_put(Dst, 8606, LJ_TISNUM); | ||
| 1166 | if (cmov) { | ||
| 1167 | dasm_put(Dst, 8374); | ||
| 1168 | } else { | ||
| 1169 | dasm_put(Dst, 8380); | ||
| 1170 | } | ||
| 1171 | goto iseqne_fp; | ||
| 1172 | case BC_ISEQP: case BC_ISNEP: | ||
| 1173 | vk = op == BC_ISEQP; | ||
| 1174 | dasm_put(Dst, 8626); | ||
| 1175 | goto iseqne_test; | ||
| 1176 | |||
| 1177 | /* -- Unary test and copy ops ------------------------------------------- */ | ||
| 1178 | |||
| 1179 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: | ||
| 1180 | dasm_put(Dst, 8637, LJ_TISTRUECOND); | ||
| 1181 | if (op == BC_IST || op == BC_ISTC) { | ||
| 1182 | dasm_put(Dst, 8649); | ||
| 1183 | } else { | ||
| 1184 | dasm_put(Dst, 8654); | ||
| 1185 | } | ||
| 1186 | if (op == BC_ISTC || op == BC_ISFC) { | ||
| 1187 | dasm_put(Dst, 8659); | ||
| 1188 | } | ||
| 1189 | dasm_put(Dst, 8670, -BCBIAS_J*4); | ||
| 1190 | break; | ||
| 1191 | |||
| 1192 | /* -- Unary ops --------------------------------------------------------- */ | ||
| 1193 | |||
| 1194 | case BC_MOV: | ||
| 1195 | dasm_put(Dst, 8701); | ||
| 1196 | break; | ||
| 1197 | case BC_NOT: | ||
| 1198 | dasm_put(Dst, 8734, LJ_TISTRUECOND, LJ_TTRUE); | ||
| 1199 | break; | ||
| 1200 | case BC_UNM: | ||
| 1201 | dasm_put(Dst, 8769, LJ_TISNUM); | ||
| 1202 | break; | ||
| 1203 | case BC_LEN: | ||
| 1204 | dasm_put(Dst, 8806, LJ_TSTR, Dt5(->len), LJ_TTAB); | ||
| 1205 | break; | ||
| 1206 | |||
| 1207 | /* -- Binary ops -------------------------------------------------------- */ | ||
| 1208 | |||
| 1209 | |||
| 1210 | case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: | ||
| 1211 | dasm_put(Dst, 8885); | ||
| 1212 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1213 | switch (vk) { | ||
| 1214 | case 0: | ||
| 1215 | dasm_put(Dst, 8893, LJ_TISNUM); | ||
| 1216 | break; | ||
| 1217 | case 1: | ||
| 1218 | dasm_put(Dst, 8912, LJ_TISNUM); | ||
| 1219 | break; | ||
| 1220 | default: | ||
| 1221 | dasm_put(Dst, 8931, LJ_TISNUM, LJ_TISNUM); | ||
| 1222 | break; | ||
| 1223 | } | ||
| 1224 | dasm_put(Dst, 8784); | ||
| 1225 | break; | ||
| 1226 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: | ||
| 1227 | dasm_put(Dst, 8885); | ||
| 1228 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1229 | switch (vk) { | ||
| 1230 | case 0: | ||
| 1231 | dasm_put(Dst, 8960, LJ_TISNUM); | ||
| 1232 | break; | ||
| 1233 | case 1: | ||
| 1234 | dasm_put(Dst, 8979, LJ_TISNUM); | ||
| 1235 | break; | ||
| 1236 | default: | ||
| 1237 | dasm_put(Dst, 8998, LJ_TISNUM, LJ_TISNUM); | ||
| 1238 | break; | ||
| 1239 | } | ||
| 1240 | dasm_put(Dst, 8784); | ||
| 1241 | break; | ||
| 1242 | case BC_MULVN: case BC_MULNV: case BC_MULVV: | ||
| 1243 | dasm_put(Dst, 8885); | ||
| 1244 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1245 | switch (vk) { | ||
| 1246 | case 0: | ||
| 1247 | dasm_put(Dst, 9027, LJ_TISNUM); | ||
| 1248 | break; | ||
| 1249 | case 1: | ||
| 1250 | dasm_put(Dst, 9046, LJ_TISNUM); | ||
| 1251 | break; | ||
| 1252 | default: | ||
| 1253 | dasm_put(Dst, 9065, LJ_TISNUM, LJ_TISNUM); | ||
| 1254 | break; | ||
| 1255 | } | ||
| 1256 | dasm_put(Dst, 8784); | ||
| 1257 | break; | ||
| 1258 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: | ||
| 1259 | dasm_put(Dst, 8885); | ||
| 1260 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1261 | switch (vk) { | ||
| 1262 | case 0: | ||
| 1263 | dasm_put(Dst, 9094, LJ_TISNUM); | ||
| 1264 | break; | ||
| 1265 | case 1: | ||
| 1266 | dasm_put(Dst, 9113, LJ_TISNUM); | ||
| 1267 | break; | ||
| 1268 | default: | ||
| 1269 | dasm_put(Dst, 9132, LJ_TISNUM, LJ_TISNUM); | ||
| 1270 | break; | ||
| 1271 | } | ||
| 1272 | dasm_put(Dst, 8784); | ||
| 1273 | break; | ||
| 1274 | case BC_MODVN: | ||
| 1275 | dasm_put(Dst, 8885); | ||
| 1276 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1277 | switch (vk) { | ||
| 1278 | case 0: | ||
| 1279 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
| 1280 | break; | ||
| 1281 | case 1: | ||
| 1282 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
| 1283 | break; | ||
| 1284 | default: | ||
| 1285 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
| 1286 | break; | ||
| 1287 | } | ||
| 1288 | dasm_put(Dst, 9228); | ||
| 1289 | break; | ||
| 1290 | case BC_MODNV: case BC_MODVV: | ||
| 1291 | dasm_put(Dst, 8885); | ||
| 1292 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1293 | switch (vk) { | ||
| 1294 | case 0: | ||
| 1295 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
| 1296 | break; | ||
| 1297 | case 1: | ||
| 1298 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
| 1299 | break; | ||
| 1300 | default: | ||
| 1301 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
| 1302 | break; | ||
| 1303 | } | ||
| 1304 | dasm_put(Dst, 9255); | ||
| 1305 | break; | ||
| 1306 | case BC_POW: | ||
| 1307 | dasm_put(Dst, 8885); | ||
| 1308 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
| 1309 | switch (vk) { | ||
| 1310 | case 0: | ||
| 1311 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
| 1312 | break; | ||
| 1313 | case 1: | ||
| 1314 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
| 1315 | break; | ||
| 1316 | default: | ||
| 1317 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
| 1318 | break; | ||
| 1319 | } | ||
| 1320 | dasm_put(Dst, 9260); | ||
| 1321 | break; | ||
| 1322 | |||
| 1323 | case BC_CAT: | ||
| 1324 | dasm_put(Dst, 9285, Dt1(->base), Dt1(->base)); | ||
| 1325 | break; | ||
| 1326 | |||
| 1327 | /* -- Constant ops ------------------------------------------------------ */ | ||
| 1328 | |||
| 1329 | case BC_KSTR: | ||
| 1330 | dasm_put(Dst, 9379, LJ_TSTR); | ||
| 1331 | break; | ||
| 1332 | case BC_KSHORT: | ||
| 1333 | dasm_put(Dst, 9412); | ||
| 1334 | break; | ||
| 1335 | case BC_KNUM: | ||
| 1336 | dasm_put(Dst, 9438); | ||
| 1337 | break; | ||
| 1338 | case BC_KPRI: | ||
| 1339 | dasm_put(Dst, 9463); | ||
| 1340 | break; | ||
| 1341 | case BC_KNIL: | ||
| 1342 | dasm_put(Dst, 9489, LJ_TNIL); | ||
| 1343 | break; | ||
| 1344 | |||
| 1345 | /* -- Upvalue and function ops ------------------------------------------ */ | ||
| 1346 | |||
| 1347 | case BC_UGET: | ||
| 1348 | dasm_put(Dst, 9535, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
| 1349 | break; | ||
| 1350 | case BC_USETV: | ||
| 1351 | #define TV2MARKOFS \ | ||
| 1352 | ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) | ||
| 1353 | dasm_put(Dst, 9579, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); | ||
| 1354 | break; | ||
| 1355 | #undef TV2MARKOFS | ||
| 1356 | case BC_USETS: | ||
| 1357 | dasm_put(Dst, 9680, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); | ||
| 1358 | break; | ||
| 1359 | case BC_USETN: | ||
| 1360 | dasm_put(Dst, 9771, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
| 1361 | break; | ||
| 1362 | case BC_USETP: | ||
| 1363 | dasm_put(Dst, 9807, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
| 1364 | break; | ||
| 1365 | case BC_UCLO: | ||
| 1366 | dasm_put(Dst, 9844, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); | ||
| 1367 | break; | ||
| 1368 | |||
| 1369 | case BC_FNEW: | ||
| 1370 | dasm_put(Dst, 9902, Dt1(->base), Dt1(->base), LJ_TFUNC); | ||
| 1371 | break; | ||
| 1372 | |||
| 1373 | /* -- Table ops --------------------------------------------------------- */ | ||
| 1374 | |||
| 1375 | case BC_TNEW: | ||
| 1376 | dasm_put(Dst, 9973, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); | ||
| 1377 | break; | ||
| 1378 | case BC_TDUP: | ||
| 1379 | dasm_put(Dst, 10084, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); | ||
| 1380 | break; | ||
| 1381 | |||
| 1382 | case BC_GGET: | ||
| 1383 | dasm_put(Dst, 10176, Dt7(->env)); | ||
| 1384 | break; | ||
| 1385 | case BC_GSET: | ||
| 1386 | dasm_put(Dst, 10194, Dt7(->env)); | ||
| 1387 | break; | ||
| 1388 | |||
| 1389 | case BC_TGETV: | ||
| 1390 | dasm_put(Dst, 10212, LJ_TTAB, LJ_TISNUM); | ||
| 1391 | if (cmov) { | ||
| 1392 | dasm_put(Dst, 8374); | ||
| 1393 | } else { | ||
| 1394 | dasm_put(Dst, 8380); | ||
| 1395 | } | ||
| 1396 | dasm_put(Dst, 10254, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TSTR); | ||
| 1397 | dasm_put(Dst, 10355); | ||
| 1398 | break; | ||
| 1399 | case BC_TGETS: | ||
| 1400 | dasm_put(Dst, 10367, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, LJ_TNIL); | ||
| 1401 | dasm_put(Dst, 10488, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | ||
| 1402 | break; | ||
| 1403 | case BC_TGETB: | ||
| 1404 | dasm_put(Dst, 10522, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | ||
| 1405 | break; | ||
| 1406 | |||
| 1407 | case BC_TSETV: | ||
| 1408 | dasm_put(Dst, 10630, LJ_TTAB, LJ_TISNUM); | ||
| 1409 | if (cmov) { | ||
| 1410 | dasm_put(Dst, 8374); | ||
| 1411 | } else { | ||
| 1412 | dasm_put(Dst, 8380); | ||
| 1413 | } | ||
| 1414 | dasm_put(Dst, 10672, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
| 1415 | dasm_put(Dst, 10767, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
| 1416 | break; | ||
| 1417 | case BC_TSETS: | ||
| 1418 | dasm_put(Dst, 10820, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK); | ||
| 1419 | dasm_put(Dst, 10900, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
| 1420 | dasm_put(Dst, 10999, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
| 1421 | break; | ||
| 1422 | case BC_TSETB: | ||
| 1423 | dasm_put(Dst, 11081, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
| 1424 | dasm_put(Dst, 11187, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
| 1425 | break; | ||
| 1426 | |||
| 1427 | case BC_TSETM: | ||
| 1428 | dasm_put(Dst, 11225, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK)); | ||
| 1429 | dasm_put(Dst, 11386, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
| 1430 | break; | ||
| 1431 | |||
| 1432 | /* -- Calls and vararg handling ----------------------------------------- */ | ||
| 1433 | |||
| 1434 | case BC_CALL: case BC_CALLM: | ||
| 1435 | dasm_put(Dst, 8889); | ||
| 1436 | if (op == BC_CALLM) { | ||
| 1437 | dasm_put(Dst, 11400); | ||
| 1438 | } | ||
| 1439 | dasm_put(Dst, 11405, LJ_TFUNC, Dt7(->gate)); | ||
| 1440 | break; | ||
| 1441 | |||
| 1442 | case BC_CALLMT: | ||
| 1443 | dasm_put(Dst, 11400); | ||
| 1444 | break; | ||
| 1445 | case BC_CALLT: | ||
| 1446 | dasm_put(Dst, 11428, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate), FRAME_TYPE); | ||
| 1447 | dasm_put(Dst, 11541, Dt7(->pt), Dt9(->k)); | ||
| 1448 | break; | ||
| 1449 | |||
| 1450 | case BC_ITERC: | ||
| 1451 | dasm_put(Dst, 11590, LJ_TFUNC, Dt7(->gate)); | ||
| 1452 | break; | ||
| 1453 | |||
| 1454 | case BC_VARG: | ||
| 1455 | dasm_put(Dst, 11652, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); | ||
| 1456 | dasm_put(Dst, 11828, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
| 1457 | break; | ||
| 1458 | |||
| 1459 | /* -- Returns ----------------------------------------------------------- */ | ||
| 1460 | |||
| 1461 | case BC_RETM: | ||
| 1462 | dasm_put(Dst, 11400); | ||
| 1463 | break; | ||
| 1464 | |||
| 1465 | case BC_RET: case BC_RET0: case BC_RET1: | ||
| 1466 | if (op != BC_RET0) { | ||
| 1467 | dasm_put(Dst, 11891); | ||
| 1468 | } | ||
| 1469 | dasm_put(Dst, 11895, FRAME_TYPE); | ||
| 1470 | switch (op) { | ||
| 1471 | case BC_RET: | ||
| 1472 | dasm_put(Dst, 11914); | ||
| 1473 | break; | ||
| 1474 | case BC_RET1: | ||
| 1475 | dasm_put(Dst, 11972); | ||
| 1476 | /* fallthrough */ | ||
| 1477 | case BC_RET0: | ||
| 1478 | dasm_put(Dst, 11988); | ||
| 1479 | default: | ||
| 1480 | break; | ||
| 1481 | } | ||
| 1482 | dasm_put(Dst, 11999, Dt7(->pt), Dt9(->k)); | ||
| 1483 | if (op == BC_RET) { | ||
| 1484 | dasm_put(Dst, 12041, LJ_TNIL); | ||
| 1485 | } else { | ||
| 1486 | dasm_put(Dst, 12050, LJ_TNIL); | ||
| 1487 | } | ||
| 1488 | dasm_put(Dst, 12057); | ||
| 1489 | if (op != BC_RET0) { | ||
| 1490 | dasm_put(Dst, 12078); | ||
| 1491 | } | ||
| 1492 | dasm_put(Dst, 8880); | ||
| 1493 | break; | ||
| 1494 | |||
| 1495 | /* -- Loops and branches ------------------------------------------------ */ | ||
| 1496 | |||
| 1497 | |||
| 1498 | case BC_FORL: | ||
| 1499 | #if LJ_HASJIT | ||
| 1500 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
| 1501 | #endif | ||
| 1502 | break; | ||
| 1503 | |||
| 1504 | case BC_JFORI: | ||
| 1505 | case BC_JFORL: | ||
| 1506 | #if !LJ_HASJIT | ||
| 1507 | break; | ||
| 1508 | #endif | ||
| 1509 | case BC_FORI: | ||
| 1510 | case BC_IFORL: | ||
| 1511 | vk = (op == BC_IFORL || op == BC_JFORL); | ||
| 1512 | dasm_put(Dst, 12103); | ||
| 1513 | if (!vk) { | ||
| 1514 | dasm_put(Dst, 12107, LJ_TISNUM, LJ_TISNUM); | ||
| 1515 | } | ||
| 1516 | dasm_put(Dst, 12126); | ||
| 1517 | if (!vk) { | ||
| 1518 | dasm_put(Dst, 12130, LJ_TISNUM); | ||
| 1519 | } | ||
| 1520 | dasm_put(Dst, 12139); | ||
| 1521 | if (vk) { | ||
| 1522 | dasm_put(Dst, 12145); | ||
| 1523 | } | ||
| 1524 | dasm_put(Dst, 12151); | ||
| 1525 | if (cmov) { | ||
| 1526 | dasm_put(Dst, 8374); | ||
| 1527 | } else { | ||
| 1528 | dasm_put(Dst, 8380); | ||
| 1529 | } | ||
| 1530 | if (!cmov) { | ||
| 1531 | dasm_put(Dst, 12166); | ||
| 1532 | } | ||
| 1533 | if (op == BC_FORI) { | ||
| 1534 | dasm_put(Dst, 12172, -BCBIAS_J*4); | ||
| 1535 | } else if (op == BC_JFORI) { | ||
| 1536 | dasm_put(Dst, 12182, -BCBIAS_J*4, BC_JLOOP); | ||
| 1537 | } else if (op == BC_IFORL) { | ||
| 1538 | dasm_put(Dst, 12196, -BCBIAS_J*4); | ||
| 1539 | } else { | ||
| 1540 | dasm_put(Dst, 12192, BC_JLOOP); | ||
| 1541 | } | ||
| 1542 | dasm_put(Dst, 8409); | ||
| 1543 | break; | ||
| 1544 | |||
| 1545 | case BC_ITERL: | ||
| 1546 | #if LJ_HASJIT | ||
| 1547 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
| 1548 | #endif | ||
| 1549 | break; | ||
| 1550 | |||
| 1551 | case BC_JITERL: | ||
| 1552 | #if !LJ_HASJIT | ||
| 1553 | break; | ||
| 1554 | #endif | ||
| 1555 | case BC_IITERL: | ||
| 1556 | dasm_put(Dst, 12206, LJ_TNIL); | ||
| 1557 | if (op == BC_JITERL) { | ||
| 1558 | dasm_put(Dst, 12221, BC_JLOOP); | ||
| 1559 | } else { | ||
| 1560 | dasm_put(Dst, 12235, -BCBIAS_J*4); | ||
| 1561 | } | ||
| 1562 | dasm_put(Dst, 8680); | ||
| 1563 | break; | ||
| 1564 | |||
| 1565 | case BC_LOOP: | ||
| 1566 | #if LJ_HASJIT | ||
| 1567 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
| 1568 | #endif | ||
| 1569 | break; | ||
| 1570 | |||
| 1571 | case BC_ILOOP: | ||
| 1572 | dasm_put(Dst, 7149); | ||
| 1573 | break; | ||
| 1574 | |||
| 1575 | case BC_JLOOP: | ||
| 1576 | #if LJ_HASJIT | ||
| 1577 | dasm_put(Dst, 12251, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); | ||
| 1578 | #endif | ||
| 1579 | break; | ||
| 1580 | |||
| 1581 | case BC_JMP: | ||
| 1582 | dasm_put(Dst, 12274, -BCBIAS_J*4); | ||
| 1583 | break; | ||
| 1584 | |||
| 1585 | /* ---------------------------------------------------------------------- */ | ||
| 1586 | |||
| 1587 | default: | ||
| 1588 | fprintf(stderr, "Error: undefined opcode BC_%s\n", bc_names[op]); | ||
| 1589 | exit(2); | ||
| 1590 | break; | ||
| 1591 | } | ||
| 1592 | } | ||
| 1593 | |||
| 1594 | static int build_backend(BuildCtx *ctx) | ||
| 1595 | { | ||
| 1596 | int op; | ||
| 1597 | int cmov = 1; | ||
| 1598 | #ifdef LUAJIT_CPU_NOCMOV | ||
| 1599 | cmov = 0; | ||
| 1600 | #endif | ||
| 1601 | |||
| 1602 | dasm_growpc(Dst, BC__MAX); | ||
| 1603 | |||
| 1604 | build_subroutines(ctx, cmov); | ||
| 1605 | |||
| 1606 | dasm_put(Dst, 12298); | ||
| 1607 | for (op = 0; op < BC__MAX; op++) | ||
| 1608 | build_ins(ctx, (BCOp)op, op, cmov); | ||
| 1609 | |||
| 1610 | return BC__MAX; | ||
| 1611 | } | ||
| 1612 | |||
| 1613 | /* Emit pseudo frame-info for all assembler functions. */ | ||
| 1614 | static void emit_asm_debug(BuildCtx *ctx) | ||
| 1615 | { | ||
| 1616 | switch (ctx->mode) { | ||
| 1617 | case BUILD_elfasm: | ||
| 1618 | fprintf(ctx->fp, "\t.section .debug_frame,\"\",@progbits\n"); | ||
| 1619 | fprintf(ctx->fp, | ||
| 1620 | ".Lframe0:\n" | ||
| 1621 | "\t.long .LECIE0-.LSCIE0\n" | ||
| 1622 | ".LSCIE0:\n" | ||
| 1623 | "\t.long 0xffffffff\n" | ||
| 1624 | "\t.byte 0x1\n" | ||
| 1625 | "\t.string \"\"\n" | ||
| 1626 | "\t.uleb128 0x1\n" | ||
| 1627 | "\t.sleb128 -4\n" | ||
| 1628 | "\t.byte 0x8\n" | ||
| 1629 | "\t.byte 0xc\n\t.uleb128 0x4\n\t.uleb128 0x4\n" | ||
| 1630 | "\t.byte 0x88\n\t.uleb128 0x1\n" | ||
| 1631 | "\t.align 4\n" | ||
| 1632 | ".LECIE0:\n\n"); | ||
| 1633 | fprintf(ctx->fp, | ||
| 1634 | ".LSFDE0:\n" | ||
| 1635 | "\t.long .LEFDE0-.LASFDE0\n" | ||
| 1636 | ".LASFDE0:\n" | ||
| 1637 | "\t.long .Lframe0\n" | ||
| 1638 | "\t.long .Lbegin\n" | ||
| 1639 | "\t.long %d\n" | ||
| 1640 | "\t.byte 0xe\n\t.uleb128 0x30\n" /* def_cfa_offset */ | ||
| 1641 | "\t.byte 0x85\n\t.uleb128 0x2\n" /* offset ebp */ | ||
| 1642 | "\t.byte 0x87\n\t.uleb128 0x3\n" /* offset edi */ | ||
| 1643 | "\t.byte 0x86\n\t.uleb128 0x4\n" /* offset esi */ | ||
| 1644 | "\t.byte 0x83\n\t.uleb128 0x5\n" /* offset ebx */ | ||
| 1645 | "\t.align 4\n" | ||
| 1646 | ".LEFDE0:\n\n", (int)ctx->codesz); | ||
| 1647 | fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n"); | ||
| 1648 | fprintf(ctx->fp, | ||
| 1649 | ".Lframe1:\n" | ||
| 1650 | "\t.long .LECIE1-.LSCIE1\n" | ||
| 1651 | ".LSCIE1:\n" | ||
| 1652 | "\t.long 0\n" | ||
| 1653 | "\t.byte 0x1\n" | ||
| 1654 | "\t.string \"zPR\"\n" | ||
| 1655 | "\t.uleb128 0x1\n" | ||
| 1656 | "\t.sleb128 -4\n" | ||
| 1657 | "\t.byte 0x8\n" | ||
| 1658 | "\t.uleb128 6\n" /* augmentation length */ | ||
| 1659 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
| 1660 | "\t.long lj_err_unwind_dwarf-.\n" | ||
| 1661 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
| 1662 | "\t.byte 0xc\n\t.uleb128 0x4\n\t.uleb128 0x4\n" | ||
| 1663 | "\t.byte 0x88\n\t.uleb128 0x1\n" | ||
| 1664 | "\t.align 4\n" | ||
| 1665 | ".LECIE1:\n\n"); | ||
| 1666 | fprintf(ctx->fp, | ||
| 1667 | ".LSFDE1:\n" | ||
| 1668 | "\t.long .LEFDE1-.LASFDE1\n" | ||
| 1669 | ".LASFDE1:\n" | ||
| 1670 | "\t.long .LASFDE1-.Lframe1\n" | ||
| 1671 | "\t.long .Lbegin-.\n" | ||
| 1672 | "\t.long %d\n" | ||
| 1673 | "\t.uleb128 0\n" /* augmentation length */ | ||
| 1674 | "\t.byte 0xe\n\t.uleb128 0x30\n" /* def_cfa_offset */ | ||
| 1675 | "\t.byte 0x85\n\t.uleb128 0x2\n" /* offset ebp */ | ||
| 1676 | "\t.byte 0x87\n\t.uleb128 0x3\n" /* offset edi */ | ||
| 1677 | "\t.byte 0x86\n\t.uleb128 0x4\n" /* offset esi */ | ||
| 1678 | "\t.byte 0x83\n\t.uleb128 0x5\n" /* offset ebx */ | ||
| 1679 | "\t.align 4\n" | ||
| 1680 | ".LEFDE1:\n\n", (int)ctx->codesz); | ||
| 1681 | break; | ||
| 1682 | case BUILD_machasm: | ||
| 1683 | fprintf(ctx->fp, "\t.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support\n"); | ||
| 1684 | fprintf(ctx->fp, | ||
| 1685 | "EH_frame1:\n" | ||
| 1686 | "\t.set L$set$0,LECIE1-LSCIE1\n" | ||
| 1687 | "\t.long L$set$0\n" | ||
| 1688 | "LSCIE1:\n" | ||
| 1689 | "\t.long 0\n" | ||
| 1690 | "\t.byte 0x1\n" | ||
| 1691 | "\t.ascii \"zPR\\0\"\n" | ||
| 1692 | "\t.byte 0x1\n" | ||
| 1693 | "\t.byte 128-4\n" | ||
| 1694 | "\t.byte 0x8\n" | ||
| 1695 | "\t.byte 6\n" /* augmentation length */ | ||
| 1696 | "\t.byte 0x9b\n" /* indirect|pcrel|sdata4 */ | ||
| 1697 | "\t.long L_lj_err_unwind_dwarf$non_lazy_ptr-.\n" | ||
| 1698 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
| 1699 | "\t.byte 0xc\n\t.byte 0x5\n\t.byte 0x4\n" /* esp=5 on 32 bit MACH-O. */ | ||
| 1700 | "\t.byte 0x88\n\t.byte 0x1\n" | ||
| 1701 | "\t.align 2\n" | ||
| 1702 | "LECIE1:\n\n"); | ||
| 1703 | fprintf(ctx->fp, | ||
| 1704 | "_lj_vm_asm_begin.eh:\n" | ||
| 1705 | "LSFDE1:\n" | ||
| 1706 | "\t.set L$set$1,LEFDE1-LASFDE1\n" | ||
| 1707 | "\t.long L$set$1\n" | ||
| 1708 | "LASFDE1:\n" | ||
| 1709 | "\t.long LASFDE1-EH_frame1\n" | ||
| 1710 | "\t.long _lj_vm_asm_begin-.\n" | ||
| 1711 | "\t.long %d\n" | ||
| 1712 | "\t.byte 0\n" /* augmentation length */ | ||
| 1713 | "\t.byte 0xe\n\t.byte 0x30\n" /* def_cfa_offset */ | ||
| 1714 | "\t.byte 0x84\n\t.byte 0x2\n" /* offset ebp (4 for MACH-O)*/ | ||
| 1715 | "\t.byte 0x87\n\t.byte 0x3\n" /* offset edi */ | ||
| 1716 | "\t.byte 0x86\n\t.byte 0x4\n" /* offset esi */ | ||
| 1717 | "\t.byte 0x83\n\t.byte 0x5\n" /* offset ebx */ | ||
| 1718 | "\t.align 2\n" | ||
| 1719 | "LEFDE1:\n\n", (int)ctx->codesz); | ||
| 1720 | fprintf(ctx->fp, | ||
| 1721 | "\t.non_lazy_symbol_pointer\n" | ||
| 1722 | "L_lj_err_unwind_dwarf$non_lazy_ptr:\n" | ||
| 1723 | ".indirect_symbol _lj_err_unwind_dwarf\n" | ||
| 1724 | ".long 0\n"); | ||
| 1725 | break; | ||
| 1726 | default: /* Difficult for other modes. */ | ||
| 1727 | break; | ||
| 1728 | } | ||
| 1729 | } | ||
| 1730 | |||
