opcode_oparg.py (7177B)
1 #!/usr/bin/env python3 2 3 def f(): 4 x0 = 0.0 5 x1 = 1.1 6 x2 = 2.2 7 x3 = 3.3 8 x4 = 4.4 9 x5 = 5.5 10 x6 = 6.6 11 x7 = 7.7 12 x8 = 8.8 13 x9 = 9.9 14 x10 = 10.10 15 x11 = 11.11 16 x12 = 12.12 17 x13 = 13.13 18 x14 = 14.14 19 x15 = 15.15 20 x16 = 16.16 21 x17 = 17.17 22 x18 = 18.18 23 x19 = 19.19 24 x20 = 20.20 25 x21 = 21.21 26 x22 = 22.22 27 x23 = 23.23 28 x24 = 24.24 29 x25 = 25.25 30 x26 = 26.26 31 x27 = 27.27 32 x28 = 28.28 33 x29 = 29.29 34 x30 = 30.30 35 x31 = 31.31 36 x32 = 32.32 37 x33 = 33.33 38 x34 = 34.34 39 x35 = 35.35 40 x36 = 36.36 41 x37 = 37.37 42 x38 = 38.38 43 x39 = 39.39 44 x40 = 40.40 45 x41 = 41.41 46 x42 = 42.42 47 x43 = 43.43 48 x44 = 44.44 49 x45 = 45.45 50 x46 = 46.46 51 x47 = 47.47 52 x48 = 48.48 53 x49 = 49.49 54 x50 = 50.50 55 x51 = 51.51 56 x52 = 52.52 57 x53 = 53.53 58 x54 = 54.54 59 x55 = 55.55 60 x56 = 56.56 61 x57 = 57.57 62 x58 = 58.58 63 x59 = 59.59 64 x60 = 60.60 65 x61 = 61.61 66 x62 = 62.62 67 x63 = 63.63 68 x64 = 64.64 69 x65 = 65.65 70 x66 = 66.66 71 x67 = 67.67 72 x68 = 68.68 73 x69 = 69.69 74 x70 = 70.70 75 x71 = 71.71 76 x72 = 72.72 77 x73 = 73.73 78 x74 = 74.74 79 x75 = 75.75 80 x76 = 76.76 81 x77 = 77.77 82 x78 = 78.78 83 x79 = 79.79 84 x80 = 80.80 85 x81 = 81.81 86 x82 = 82.82 87 x83 = 83.83 88 x84 = 84.84 89 x85 = 85.85 90 x86 = 86.86 91 x87 = 87.87 92 x88 = 88.88 93 x89 = 89.89 94 x90 = 90.90 95 x91 = 91.91 96 x92 = 92.92 97 x93 = 93.93 98 x94 = 94.94 99 x95 = 95.95 100 x96 = 96.96 101 x97 = 97.97 102 x98 = 98.98 103 x99 = 99.99 104 x100 = 100.100 105 x101 = 101.101 106 x102 = 102.102 107 x103 = 103.103 108 x104 = 104.104 109 x105 = 105.105 110 x106 = 106.106 111 x107 = 107.107 112 x108 = 108.108 113 x109 = 109.109 114 x110 = 110.110 115 x111 = 111.111 116 x112 = 112.112 117 x113 = 113.113 118 x114 = 114.114 119 x115 = 115.115 120 x116 = 116.116 121 x117 = 117.117 122 x118 = 118.118 123 x119 = 119.119 124 x120 = 120.120 125 x121 = 121.121 126 x122 = 122.122 127 x123 = 123.123 128 x124 = 124.124 129 x125 = 125.125 130 x126 = 126.126 131 x127 = 127.127 132 x128 = 128.128 133 x129 = 129.129 134 x130 = 130.130 135 x131 = 131.131 136 x132 = 132.132 137 x133 = 133.133 138 x134 = 134.134 139 x135 = 135.135 140 x136 = 136.136 141 x137 = 137.137 142 x138 = 138.138 143 x139 = 139.139 144 x140 = 140.140 145 x141 = 141.141 146 x142 = 142.142 147 x143 = 143.143 148 x144 = 144.144 149 x145 = 145.145 150 x146 = 146.146 151 x147 = 147.147 152 x148 = 148.148 153 x149 = 149.149 154 x150 = 150.150 155 x151 = 151.151 156 x152 = 152.152 157 x153 = 153.153 158 x154 = 154.154 159 x155 = 155.155 160 x156 = 156.156 161 x157 = 157.157 162 x158 = 158.158 163 x159 = 159.159 164 x160 = 160.160 165 x161 = 161.161 166 x162 = 162.162 167 x163 = 163.163 168 x164 = 164.164 169 x165 = 165.165 170 x166 = 166.166 171 x167 = 167.167 172 x168 = 168.168 173 x169 = 169.169 174 x170 = 170.170 175 x171 = 171.171 176 x172 = 172.172 177 x173 = 173.173 178 x174 = 174.174 179 x175 = 175.175 180 x176 = 176.176 181 x177 = 177.177 182 x178 = 178.178 183 x179 = 179.179 184 x180 = 180.180 185 x181 = 181.181 186 x182 = 182.182 187 x183 = 183.183 188 x184 = 184.184 189 x185 = 185.185 190 x186 = 186.186 191 x187 = 187.187 192 x188 = 188.188 193 x189 = 189.189 194 x190 = 190.190 195 x191 = 191.191 196 x192 = 192.192 197 x193 = 193.193 198 x194 = 194.194 199 x195 = 195.195 200 x196 = 196.196 201 x197 = 197.197 202 x198 = 198.198 203 x199 = 199.199 204 x200 = 200.200 205 x201 = 201.201 206 x202 = 202.202 207 x203 = 203.203 208 x204 = 204.204 209 x205 = 205.205 210 x206 = 206.206 211 x207 = 207.207 212 x208 = 208.208 213 x209 = 209.209 214 x210 = 210.210 215 x211 = 211.211 216 x212 = 212.212 217 x213 = 213.213 218 x214 = 214.214 219 x215 = 215.215 220 x216 = 216.216 221 x217 = 217.217 222 x218 = 218.218 223 x219 = 219.219 224 x220 = 220.220 225 x221 = 221.221 226 x222 = 222.222 227 x223 = 223.223 228 x224 = 224.224 229 x225 = 225.225 230 x226 = 226.226 231 x227 = 227.227 232 x228 = 228.228 233 x229 = 229.229 234 x230 = 230.230 235 x231 = 231.231 236 x232 = 232.232 237 x233 = 233.233 238 x234 = 234.234 239 x235 = 235.235 240 x236 = 236.236 241 x237 = 237.237 242 x238 = 238.238 243 x239 = 239.239 244 x240 = 240.240 245 x241 = 241.241 246 x242 = 242.242 247 x243 = 243.243 248 x244 = 244.244 249 x245 = 245.245 250 x246 = 246.246 251 x247 = 247.247 252 x248 = 248.248 253 x249 = 249.249 254 x250 = 250.250 255 x251 = 251.251 256 x252 = 252.252 257 x253 = 253.253 258 x254 = 254.254 259 x255 = 255.255 260 x256 = 256.256 261 x257 = 257.257 262 return x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + x12 + x13 + x14 + x15 + x16 + x17 + x18 + x19 + x20 + x21 + x22 + x23 + x24 + x25 + x26 + x27 + x28 + x29 + x30 + x31 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40 + x41 + x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x55 + x56 + x57 + x58 + x59 + x60 + x61 + x62 + x63 + x64 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x76 + x77 + x78 + x79 + x80 + x81 + x82 + x83 + x84 + x85 + x86 + x87 + x88 + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98 + x99 + x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109 + x110 + x111 + x112 + x113 + x114 + x115 + x116 + x117 + x118 + x119 + x120 + x121 + x122 + x123 + x124 + x125 + x126 + x127 + x128 + x129 + x130 + x131 + x132 + x133 + x134 + x135 + x136 + x137 + x138 + x139 + x140 + x141 + x142 + x143 + x144 + x145 + x146 + x147 + x148 + x149 + x150 + x151 + x152 + x153 + x154 + x155 + x156 + x157 + x158 + x159 + x160 + x161 + x162 + x163 + x164 + x165 + x166 + x167 + x168 + x169 + x170 + x171 + x172 + x173 + x174 + x175 + x176 + x177 + x178 + x179 + x180 + x181 + x182 + x183 + x184 + x185 + x186 + x187 + x188 + x189 + x190 + x191 + x192 + x193 + x194 + x195 + x196 + x197 + x198 + x199 + x200 + x201 + x202 + x203 + x204 + x205 + x206 + x207 + x208 + x209 + x210 + x211 + x212 + x213 + x214 + x215 + x216 + x217 + x218 + x219 + x220 + x221 + x222 + x223 + x224 + x225 + x226 + x227 + x228 + x229 + x230 + x231 + x232 + x233 + x234 + x235 + x236 + x237 + x238 + x239 + x240 + x241 + x242 + x243 + x244 + x245 + x246 + x247 + x248 + x249 + x250 + x251 + x252 + x253 + x254 + x255 + x256 + x257 263 264 265 import dis 266 import binascii 267 268 dis.dis(f) 269 h = f.__code__.co_code.hex() 270 inst_code = " ".join([h[i:i + 4] for i in range(0, len(h), 4)]).split() 271 print('') 272 print( 273 'Bytes in bytecode:', len(f.__code__.co_code), 274 f'(number of instructions: {len(inst_code)})' 275 ) 276 print('Number of elements in `co_const` tuple:', len(f.__code__.co_consts)) 277 print( 278 'Instructions at byte offset 1016 to 1034:\n\n\t', 279 " ".join(inst_code[1016 // 2:1032 // 2 + 1]) 280 ) 281 print(f'\n({dis.opname[0x64]:<12s}) 0x64 0xff') 282 print(f'({dis.opname[0x7d]:<12s}) 0x7d 0xfe') 283 print(f'({dis.opname[0x90]:<12s}) 0x90 0x01') 284 print(f'({dis.opname[0x64]:<12s}) 0x64 0x00') 285 print(f'({dis.opname[0x7d]:<12s}) 0x7d 0xff') 286 print(f'({dis.opname[0x90]:<12s}) 0x90 0x01') 287 print(f'({dis.opname[0x64]:<12s}) 0x64 0x01') 288 print(f'({dis.opname[0x90]:<12s}) 0x90 0x01') 289 print(f'({dis.opname[0x7d]:<12s}) 0x7d 0x00')