对象。豫
yuyan · 741 行 · 39055 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741
寻观「底层库」之书。
寻观「客体二号」之「布局」之书。
寻观「客体二号」之「平台」之书。
寻观「客体二号」之「基础」之书。
寻观「客体二号」之「实例」之书。
寻观「客体二号」之「模块」之书。
寻观「客体二号」之「控制」之书。
寻观「客体二号」之「堆」之书。
「:文言:客体之对象:结构、数组、引用之转,及常量式之求值。汉语:GC 指令(0xFB 前缀):结构体与数组的创建与访问、引用类型测试与转换、i31 引用;以及常量表达式求值。数据槽统一为 8 字节;元素类别:0 四字节数值、1 八字节数值、2 引用、3 字节、4 半字。:」
「:文言:元素之载与存。汉语:数组元素的载入(可按符号扩展)与存入;结构字段统一 8 字节槽,压缩字段只用低字(存入时截断)。:」
「载入元素」乃化「整数」而化「整数」而化「爻」而化「整数」而「有」也。
「载入元素」者会「址」而会「类别」而会「有符」而会「目」而
鉴「类别」而
有「零」则
((「写四」于「目」于(「读四」于「址」));
(「写字段」于「目」于「四」于「零」))
或有「二」则
((「写四」于「目」于(「读四」于「址」));
(「写字段」于「目」于「四」于「零」))
或有「一」则
「拷槽」于「目」于「址」
或有「三」则
((「写四」于「目」于(「选择」于「有符」于(「读一有符号」于「址」)于(「读一」于「址」)));
(「写字段」于「目」于「四」于「零」))
或有「四」则
((「写四」于「目」于(「选择」于「有符」于(「读二有符号」于「址」)于(「读二」于「址」)));
(「写字段」于「目」于「四」于「零」))
或有「其他」则「元」
也。
「存入元素」乃化「整数」而化「整数」而化「整数」而「有」也。
「存入元素」者会「址」而会「类别」而会「源」而
鉴「类别」而
有「零」则
「写四」于「址」于(「读四」于「源」)
或有「二」则
「写四」于「址」于(「读四」于「源」)
或有「一」则
「拷槽」于「址」于「源」
或有「三」则
「写一」于「址」于(「读四」于「源」)
或有「四」则
「写二」于「址」于(「读四」于「源」)
或有「其他」则「元」
也。
「存入字段」乃化「整数」而化「整数」而化「整数」而「有」也。
「存入字段」者会「址」而会「类别」而会「源」而
鉴「类别」而
有「三」则
((「写四」于「址」于(「位与」于(「读四」于「源」)于「二五五」));
(「写字段」于「址」于「四」于「零」))
或有「四」则
((「写四」于「址」于(「位与」于(「读四」于「源」)于「六五五三五」));
(「写字段」于「址」于「四」于「零」))
或有「其他」则
「拷槽」于「址」于「源」
也。
「:文言:类型之关系。汉语:子类型判定(沿超类链);引用是否属于某堆类型(s33 立即数:非负为类型号,负为抽象类型 any/eq/i31/struct/array/func/extern;可空则 null 通过)。:」
「是子类型」乃化「整数」而化「整数」而「爻」也。
「是子类型」者会「类型号」而
会「堆类型」而
递归虑「逐」其化「整数」而「爻」者会「号」而
若「小于」于「号」于「零」则
「阴」
否则
(若「等」于「号」于「堆类型」则「阳」否则「逐」于(「读字段」于(「类型条」于「号」)于「类型条_超类」))
而
「逐」于「类型号」
也。
「是标量引用」乃化「整数」而「爻」也。
「是标量引用」者会「字」而
「或者」于(「不等于」于(「位与」于「字」于「一」)于「零」)
于(「不等于」于(「位与」于「字」于「七」)于「零」)
也。
「按种判定」乃化「整数」而化「整数」而「爻」也。
「按种判定」者会「字」而会「种」而
若「是标量引用」于「字」则
「阴」
否则
「等」于(「对象种」于(「读四」于「字」))于「种」
也。
「抽象类型属于」乃化「整数」而化「整数」而「爻」也。
「抽象类型属于」者会「字」而会「抽象」而
鉴「抽象」而
有「一八」则
「不等于」于(「位与」于「字」于「七」)于「二」
或有「一九」则
「或者」
于(「不等于」于(「位与」于「字」于「一」)于「零」)
于(「等零」于(「位与」于「字」于「七」))
或有「二零」则
「不等于」于(「位与」于「字」于「一」)于「零」
或有「二一」则
「按种判定」于「字」于「种类结构」
或有「二二」则
「按种判定」于「字」于「种类数组」
或有「一六」则
「等」于(「位与」于「字」于「七」)于「二」
或有「一七」则「阳」
或有「其他」则「阴」
也。
「具体类型属于」乃化「整数」而化「整数」而「爻」也。
「具体类型属于」者会「字」而会「堆类型」而
若「等」于(「位与」于「字」于「七」)于「二」
则
「函数类型等价」于(「读四」于(「函数条」于(「无符号右移」于「字」于「三」)))于「堆类型」
否则
(
若「不等于」于(「位与」于「字」于「一」)于「零」则
「阴」
否则
(
若「不等于」
于(「位与」于(「无符号右移」于(「读四」于「字」)于「一六」)于「二五五」)
于(「读四」于「状态_当前实例」)则
「阴」
否则
「是子类型」
于(「位与」于(「读四」于「字」)于「六五五三五」)于「堆类型」
)
)
也。
「引用属于」乃化「整数」而化「整数」而化「爻」而「爻」也。
「引用属于」者会「字」而会「堆类型」而会「可空」而
若「等零」于「字」则
「可空」
否则
(
若「有符号大等」于「堆类型」于「零」
则
「具体类型属于」于「字」于「堆类型」
否则
「抽象类型属于」于「字」于(「减」于「零」于「堆类型」)
)
也。
「空引用检」乃化「整数」而「有」也。
「空引用检」者会「址」而
「若则致命」于(「等零」于「址」)于「一二九」于(「静态串」于『空引用』)
也。
「转换失败」乃化「整数」而化「整数」而「有」也。
「转换失败」者会「字」而会「堆类型」而
「致命退出」于「一三五」于(「静态串」于『类型转换失败』)
也。
「:文言:GC 指令之行:诸例各取立即数、记新指令针、返新栈针。汉语:GC 指令执行:每个函数读取自己的立即数,把新指令针写入 状态_新指令针,返回新栈针。每次分配前先把栈针存入 状态_栈针,使保守回收能看到当前值栈。:」
「读双立即数」乃化「整数」而「整数」也。
「读双立即数」者会「址」而
虑「甲」者「读无符号变长」于「址」而
虑「乙址」者「读四」于「状态_读址」而
虑「乙」者「读无符号变长」于「乙址」而
虑「无」者(「写四」于「状态_读高」于「乙」)而
「甲」
也。
「新建结构」乃化「整数」而化「整数」而「整数」也。
「新建结构」者会「址」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「字段数」者「读字段」于(「类型条」于「类型号」)于「类型条_甲」而
虑「对象」者
「分配对象」于(「结构字节」于「类型号」)于「种类结构」于「类型号」而
虑「基」者「减」于「栈针」于(「乘」于「字段数」于「八」)而
虑「描述」者
「读字段」于(「类型条」于「类型号」)于「类型条_编码起」而
虑「无」者
(
递归虑「逐」其化「整数」而「有」者会「位」而
若「小于」于「位」于「字段数」
则
((「存入字段」
于(「加」于(「加」于「对象」于「八」)于(「乘」于「位」于「八」))
于(「读一」于(「加」于「描述」于「位」))
于(「加」于「基」于(「乘」于「位」于「八」)));
「逐」于(「加」于「位」于「一」))
否则
「元」
而
「逐」于「零」
)
而
虑「无」者(「写四」于「基」于「对象」)
而
虑「无」者(「写字段」于「基」于「四」于「零」)而
「加」于「基」于「八」
也。
「新建默认结构」乃化「整数」而化「整数」而「整数」也。
「新建默认结构」者会「址」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者
「分配对象」于(「结构字节」于「类型号」)于「种类结构」于「类型号」而
虑「无」者(「写四」于「栈针」于「对象」)而
虑「无」者(「写字段」于「栈针」于「四」于「零」)而
「加」于「栈针」于「八」
也。
「取结构字段」乃化「整数」而化「整数」而化「整数」而「整数」也。
「取结构字段」者会「子」而会「址」而会「栈针」而
虑「类型号」者「读双立即数」于「址」而
虑「字段号」者「读四」于「状态_读高」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者「栈槽字」于「栈针」于「一」而
虑「无」者(「空引用检」于「对象」)而
虑「类别」者
「读一」于(「加」于(「读字段」于(「类型条」于「类型号」)于「类型条_编码起」)于「字段号」)而
虑「槽」者
「加」于(「加」于「对象」于「八」)于(「乘」于「字段号」于「八」)而
虑「无」者
(
若「有符号大等」于「类别」于「三」
则
虑「字」者「读四」于「槽」而
虑「有符」者「等」于「子」于「三」而
虑「窄」者「等」于「类别」于「三」而
虑「值」者
「选择」
于「有符」
于(「选择」
于「窄」
于(「有符号右移」于(「左移」于「字」于「二四」)于「二四」)
于(「有符号右移」于(「左移」于「字」于「一六」)于「一六」))
于(「选择」于「窄」于(「位与」于「字」于「二五五」)于(「位与」于「字」于「六五五三五」))
而
「置栈槽」于「栈针」于「一」于「值」于「零」
否则
「拷槽」于(「栈槽址」于「栈针」于「一」)于「槽」
)
而
「栈针」
也。
「设结构字段」乃化「整数」而化「整数」而「整数」也。
「设结构字段」者会「址」而会「栈针」而
虑「类型号」者「读双立即数」于「址」而
虑「字段号」者「读四」于「状态_读高」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者「栈槽字」于「栈针」于「二」而
虑「无」者(「空引用检」于「对象」)而
虑「类别」者
「读一」于(「加」于(「读字段」于(「类型条」于「类型号」)于「类型条_编码起」)于「字段号」)而
虑「无」者
(「存入字段」
于(「加」于(「加」于「对象」于「八」)于(「乘」于「字段号」于「八」))
于「类别」
于(「栈槽址」于「栈针」于「一」))
而
「栈槽址」于「栈针」于「二」
也。
「填元素们」乃
化「整数」而
化「整数」而
化「整数」而
化「整数」而
化「整数」而
「有」
也。
「填元素们」者会「数据址」而
会「类别」而
会「宽」而
会「源」而
会「长」而
递归虑「逐」其化「整数」而「有」者会「位」而
若「小于」于「位」于「长」
则
((「存入元素」于(「加」于「数据址」于(「乘」于「位」于「宽」))于「类别」于「源」);
「逐」于(「加」于「位」于「一」))
否则
「元」
而
「逐」于「零」
也。
「数组元素址」乃化「整数」而化「整数」而化「整数」而「整数」也。
「数组元素址」者会「对象」而会「序」而会「宽」而
「加」于(「加」于「对象」于「一六」)于(「乘」于「序」于「宽」)
也。
「区间越界」乃化「整数」而化「整数」而化「整数」而「爻」也。
「区间越界」者会「起」而会「长」而会「上限」而
「或者」
于(「无符号大于」于(「加」于「起」于「长」)于「上限」)
于(「无符号小于」于(「加」于「起」于「长」)于「起」)
也。
「校验数组索引」乃化「整数」而化「整数」而「有」也。
「校验数组索引」者会「对象」而会「序」而
「若则致命」
于(「无符号大等」于「序」于(「读字段」于「对象」于「八」))于「一二七」
于(「静态串」于『数组索引越界』)
也。
「新建数组」乃化「整数」而化「爻」而化「整数」而「整数」也。
「新建数组」者会「址」而会「有初值」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「长」者「栈槽字」于「栈针」于「一」而
虑「条」者「类型条」于「类型号」而
虑「类别」者「读字段」于「条」于「类型条_甲」而
虑「宽」者「读字段」于「条」于「类型条_乙」而
虑「对象」者
「分配对象」于(「数组字节」于「类型号」于「长」)于「种类数组」于「类型号」而
虑「无」者(「写字段」于「对象」于「八」于「长」)而
若「有初值」
则
虑「值槽」者「栈槽址」于「栈针」于「二」而
虑「无」者
(
若「且」于(「等」于「类别」于「三」)于(「大于」于「长」于「零」)
则
「内存填充」
于(「加」于「对象」于「一六」)
于(「读四」于「值槽」)于「长」
否则
「填元素们」
于(「加」于「对象」于「一六」)
于「类别」于「宽」于「值槽」于「长」
)
而
虑「无」者(「置栈槽」于「栈针」于「二」于「对象」于「零」)而
「栈槽址」于「栈针」于「一」
否则
虑「无」者(「置栈槽」于「栈针」于「一」于「对象」于「零」)而
「栈针」
也。
「新建固定数组」乃化「整数」而化「整数」而「整数」也。
「新建固定数组」者会「址」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
虑「类型号」者「读双立即数」于「址」而
虑「个数」者「读四」于「状态_读高」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「条」者「类型条」于「类型号」而
虑「类别」者「读字段」于「条」于「类型条_甲」而
虑「宽」者「读字段」于「条」于「类型条_乙」而
虑「对象」者
「分配对象」于(「数组字节」于「类型号」于「个数」)于「种类数组」于「类型号」而
虑「无」者(「写字段」于「对象」于「八」于「个数」)而
虑「基」者「减」于「栈针」于(「乘」于「个数」于「八」)而
虑「无」者
(
递归虑「逐」其化「整数」而「有」者会「位」而
若「小于」于「位」于「个数」
则
((「存入元素」
于(「数组元素址」于「对象」于「位」于「宽」)
于「类别」
于(「加」于「基」于(「乘」于「位」于「八」)));
「逐」于(「加」于「位」于「一」))
否则
「元」
而
「逐」于「零」
)
而
虑「无」者(「写四」于「基」于「对象」)而
虑「无」者(「写字段」于「基」于「四」于「零」)而
「加」于「基」于「八」
也。
「新建数据数组」乃化「整数」而化「整数」而「整数」也。
「新建数据数组」者会「址」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
虑「类型号」者「读双立即数」于「址」而
虑「段」者「读四」于「状态_读高」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「起」者「栈槽字」于「栈针」于「二」而
虑「长」者「栈槽字」于「栈针」于「一」而
虑「宽」者「读字段」于(「类型条」于「类型号」)于「类型条_乙」而
虑「条」者
「加」于(「读四」于「状态_数据段表」)于(「乘」于「段」于「数据段条长」)而
虑「字节」者「乘」于「长」于「宽」而
虑「可用长」者
「选择」
于(「不等于」于(「读字段」于「条」于「数据段_已弃」)于「零」)
于「零」
于(「读字段」于「条」于「数据段_长度」)而
虑「无」者
(「若则致命」
于(「或者」
于(「区间越界」于「起」于「字节」于「可用长」)
于(「无符号大于」
于「长」
于(「无符号除」于「二六八四三五四五六」于(「选择」于(「大于」于「宽」于「零」)于「宽」于「一」))))
于「一二七」
于(「静态串」于『array.new_data 越界』))而
虑「对象」者
「分配对象」
于(「数组字节」于「类型号」于「长」)
于「种类数组」于「类型号」而
虑「无」者(「写字段」于「对象」于「八」于「长」)而
虑「无」者
(「拷贝」于(「加」于「对象」于「一六」)于(「加」于(「读四」于「条」)于「起」)于「字节」)而
虑「无」者
(「置栈槽」于「栈针」于「二」于「对象」于「零」)
而
「栈槽址」于「栈针」于「一」
也。
「取数组元素」乃化「整数」而化「整数」而化「整数」而「整数」也。
「取数组元素」者会「子」而会「址」而会「栈针」而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者「栈槽字」于「栈针」于「二」而
虑「序」者「栈槽字」于「栈针」于「一」而
虑「无」者(「空引用检」于「对象」)而
虑「无」者(「校验数组索引」于「对象」于「序」)而
虑「条」者「类型条」于「类型号」而
虑「宽」者「读字段」于「条」于「类型条_乙」而
虑「无」者
(「载入元素」
于(「数组元素址」于「对象」于「序」于「宽」)
于(「读字段」于「条」于「类型条_甲」)
于(「等」于「子」于「一二」)
于(「栈槽址」于「栈针」于「二」))
而
「栈槽址」于「栈针」于「一」
也。
「设数组元素」乃化「整数」而化「整数」而「整数」也。
「设数组元素」者会「址」而会「栈针」而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者「栈槽字」于「栈针」于「三」而
虑「序」者「栈槽字」于「栈针」于「二」而
虑「无」者(「空引用检」于「对象」)而
虑「无」者(「校验数组索引」于「对象」于「序」)而
虑「条」者「类型条」于「类型号」而
虑「无」者
(「存入元素」
于(「数组元素址」于「对象」于「序」于(「读字段」于「条」于「类型条_乙」))
于(「读字段」于「条」于「类型条_甲」)
于(「栈槽址」于「栈针」于「一」))
而
「栈槽址」于「栈针」于「三」
也。
「数组长度」乃化「整数」而化「整数」而「整数」也。
「数组长度」者会「址」而会「栈针」而
虑「无」者(「写四」于「状态_新指令针」于「址」)而
虑「对象」者「栈槽字」于「栈针」于「一」而
虑「无」者(「空引用检」于「对象」)而
虑「无」者
(「置栈槽字」于「栈针」于「一」于(「读字段」于「对象」于「八」))
而
「栈针」
也。
「填充数组」乃化「整数」而化「整数」而「整数」也。
「填充数组」者会「址」而会「栈针」而
虑「类型号」者「读无符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「对象」者「栈槽字」于「栈针」于「四」而
虑「起」者「栈槽字」于「栈针」于「三」而
虑「长」者「栈槽字」于「栈针」于「一」而
虑「无」者(「空引用检」于「对象」)而
虑「无」者
(「若则致命」
于(「区间越界」于「起」于「长」于(「读字段」于「对象」于「八」))
于「一二七」
于(「静态串」于『array.fill 越界』))而
虑「条」者「类型条」于「类型号」而
虑「宽」者「读字段」于「条」于「类型条_乙」而
虑「无」者
(「填元素们」
于(「数组元素址」于「对象」于「起」于「宽」)
于(「读字段」于「条」于「类型条_甲」)
于「宽」
于(「栈槽址」于「栈针」于「二」)于「长」)
而
「栈槽址」于「栈针」于「四」
也。
「复制数组」乃化「整数」而化「整数」而「整数」也。
「复制数组」者会「址」而会「栈针」而
虑「类型号」者「读双立即数」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「目对象」者「栈槽字」于「栈针」于「五」而
虑「目起」者「栈槽字」于「栈针」于「四」而
虑「源对象」者「栈槽字」于「栈针」于「三」而
虑「源起」者「栈槽字」于「栈针」于「二」而
虑「长」者「栈槽字」于「栈针」于「一」而
虑「无」者(「空引用检」于「目对象」)而
虑「无」者(「空引用检」于「源对象」)而
虑「无」者
(「若则致命」
于(「或者」
于(「区间越界」于「目起」于「长」于(「读字段」于「目对象」于「八」))
于(「区间越界」于「源起」于「长」于(「读字段」于「源对象」于「八」)))
于「一二七」
于(「静态串」于『array.copy 越界』))而
虑「宽」者「读字段」于(「类型条」于「类型号」)于「类型条_乙」而
虑「无」者
(「拷贝」
于(「数组元素址」于「目对象」于「目起」于「宽」)
于(「数组元素址」于「源对象」于「源起」于「宽」)
于(「乘」于「长」于「宽」))
而
「栈槽址」于「栈针」于「五」
也。
「引用测试或转换」乃化「整数」而化「整数」而化「整数」而「整数」也。
「引用测试或转换」者会「子」而会「址」而会「栈针」而
虑「堆类型」者「读有符号变长」于「址」而
虑「无」者(「写四」于「状态_新指令针」于(「读四」于「状态_读址」))而
虑「字」者「栈槽字」于「栈针」于「一」而
虑「通过」者
「引用属于」于「字」于「堆类型」于(「不等于」于(「位与」于「子」于「一」)于「零」)而
虑「无」者
(
若「小于」于「子」于「二二」
则
「置栈槽」于「栈针」于「一」于(「爻整」于「通过」)于「零」
否则
(若「通过」则「元」否则「转换失败」于「字」于「堆类型」)
)
而
「栈针」
也。
「按转型分支」乃化「整数」而化「整数」而化「整数」而「整数」也。
「按转型分支」者会「子」而会「址」而会「栈针」而
虑「标志」者「读一」于「址」而
虑「层」者「读无符号变长」于(「加」于「址」于「一」)而
虑「址二」者「读四」于「状态_读址」而
虑「无」者「读有符号变长」于「址二」而
虑「址三」者「读四」于「状态_读址」而
虑「目标类型」者「读有符号变长」于「址三」而
虑「址四」者「读四」于「状态_读址」而
虑「无」者(「写四」于「状态_新指令针」于「址四」)而
虑「字」者「栈槽字」于「栈针」于「一」而
虑「通过」者
「引用属于」
于「字」于「目标类型」
于(「不等于」于(「位与」于(「无符号右移」于「标志」于「一」)于「一」)于「零」)而
若「等」于(「爻整」于「通过」)于(「爻整」于(「等」于「子」于「二四」))
则
「分支」于「层」于「栈针」
否则
「栈针」
也。
「整三一操作」乃化「整数」而化「整数」而化「整数」而「整数」也。
「整三一操作」者会「子」而会「址」而会「栈针」而
虑「无」者(「写四」于「状态_新指令针」于「址」)而
虑「字」者「栈槽字」于「栈针」于「一」而
鉴「子」而
有「二八」则
((「置栈槽字」于「栈针」于「一」于(「位或」于(「左移」于「字」于「一」)于「一」));
「栈针」)
或有「二九」则
((「空引用检」于「字」);
(「置栈槽字」于「栈针」于「一」于(「有符号右移」于「字」于「一」));
「栈针」)
或有「三零」则
((「空引用检」于「字」);
(「置栈槽字」于「栈针」于「一」于(「无符号右移」于「字」于「一」));
「栈针」)
或有「其他」则「栈针」
也。
「执行GC」乃化「整数」而化「整数」而化「整数」而「整数」也。
「执行GC」者会「子」而会「址」而会「栈针」而
鉴「子」而
有「零」则
「新建结构」于「址」于「栈针」
或有「一」则
「新建默认结构」于「址」于「栈针」
或有「二」则
「取结构字段」于「子」于「址」于「栈针」
或有「三」则
「取结构字段」于「子」于「址」于「栈针」
或有「四」则
「取结构字段」于「子」于「址」于「栈针」
或有「五」则
「设结构字段」于「址」于「栈针」
或有「六」则
「新建数组」于「址」于「阳」于「栈针」
或有「七」则
「新建数组」于「址」于「阴」于「栈针」
或有「八」则
「新建固定数组」于「址」于「栈针」
或有「九」则
「新建数据数组」于「址」于「栈针」
或有「一一」则
「取数组元素」于「子」于「址」于「栈针」
或有「一二」则
「取数组元素」于「子」于「址」于「栈针」
或有「一三」则
「取数组元素」于「子」于「址」于「栈针」
或有「一四」则
「设数组元素」于「址」于「栈针」
或有「一五」则
「数组长度」于「址」于「栈针」
或有「一六」则
「填充数组」于「址」于「栈针」
或有「一七」则
「复制数组」于「址」于「栈针」
或有「二零」则
「引用测试或转换」于「子」于「址」于「栈针」
或有「二一」则
「引用测试或转换」于「子」于「址」于「栈针」
或有「二二」则
「引用测试或转换」于「子」于「址」于「栈针」
或有「二三」则
「引用测试或转换」于「子」于「址」于「栈针」
或有「二四」则
「按转型分支」于「子」于「址」于「栈针」
或有「二五」则
「按转型分支」于「子」于「址」于「栈针」
或有「二六」则
((「写四」于「状态_新指令针」于「址」);
「栈针」)
或有「二七」则
((「写四」于「状态_新指令针」于「址」);
「栈针」)
或有「二八」则
「整三一操作」于「子」于「址」于「栈针」
或有「二九」则
「整三一操作」于「子」于「址」于「栈针」
或有「三零」则
「整三一操作」于「子」于「址」于「栈针」
或有「其他」则
((「致命退出」于「一三一」于(「静态串」于『不支持的 GC 指令』));
「栈针」)
也。
「:文言:常量式之求:以值栈为工作栈,结果置于目标槽,返 end 之后位。汉语:常量表达式求值:用值栈基址起的工作栈解释常量指令(i32/i64/f 常量、ref.null/ref.func、global.get、i32/i64 加减乘、GC 前缀指令),结果写入目标槽,返回 end 之后的位置。:」
「求值常量式于」乃化「整数」而化「整数」而化「整数」而「整数」也。
「求值常量式于」者会「起」而
会「目标」而
会「基」而
递归虑「逐」其化「整数」而化「整数」而「整数」者会「址」而会「栈针」而
虑「操作码」者「读一」于「址」而
虑「后」者「加」于「址」于「一」而
鉴「操作码」而
有「一一」则
((「拷槽」于「目标」于(「栈槽址」于「栈针」于「一」));
「后」)
或有「六五」则(
虑「值」者「读有符号变长」于「后」而
虑「新址」者「读四」于「状态_读址」而
((「宽存」于「栈针」于「值」于「零」);
「逐」于「新址」于(「加」于「栈针」于「八」))
)
或有「六六」则(
虑「值」者「读有符号宽变长」于「后」而
虑「新址」者「读四」于「状态_读址」而
((「宽存」于「栈针」于「值」于(「读四」于「状态_读高」));
「逐」于「新址」于(「加」于「栈针」于「八」))
)
或有「六七」则
((「宽存」于「栈针」于(「读四」于「后」)于「零」);
「逐」于(「加」于「后」于「四」)于(「加」于「栈针」于「八」))
或有「六八」则
((「宽存」于「栈针」于(「读四」于「后」)于(「读四」于(「加」于「后」于「四」)));
「逐」于(「加」于「后」于「八」)于(「加」于「栈针」于「八」))
或有「二零八」则
((「宽存」于「栈针」于「零」于「零」);
「逐」于(「变长后」于「后」)于(「加」于「栈针」于「八」))
或有「二一零」则(
虑「值」者「读无符号变长」于「后」而
虑「新址」者「读四」于「状态_读址」而
((「宽存」于「栈针」于(「位或」于(「左移」于「值」于「三」)于「二」)于「零」);
「逐」于「新址」于(「加」于「栈针」于「八」))
)
或有「三五」则(
虑「值」者「读无符号变长」于「后」而
虑「新址」者「读四」于「状态_读址」而
((「拷槽」于「栈针」于(「加」于(「读四」于「状态_全局表」)于(「乘」于「值」于「八」)));
「逐」于「新址」于(「加」于「栈针」于「八」))
)
或有「一零六」则
((「置栈槽字」
于「栈针」
于「二」
于(「加」于(「栈槽字」于「栈针」于「二」)于(「栈槽字」于「栈针」于「一」)));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「一零七」则
((「置栈槽字」
于「栈针」
于「二」
于(「减」于(「栈槽字」于「栈针」于「二」)于(「栈槽字」于「栈针」于「一」)));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「一零八」则
((「置栈槽字」
于「栈针」
于「二」
于(「乘」于(「栈槽字」于「栈针」于「二」)于(「栈槽字」于「栈针」于「一」)));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「一二四」则
((「宽加」
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「一」));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「一二五」则
((「宽减」
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「一」));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「一二六」则
((「宽乘」
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「二」)
于(「栈槽址」于「栈针」于「一」));
「逐」于「后」于(「减」于「栈针」于「八」))
或有「二五一」则(
虑「子」者「读无符号变长」于「后」而
虑「新址」者「读四」于「状态_读址」而
虑「新栈针」者「执行GC」于「子」于「新址」于「栈针」而
「逐」于(「读四」于「状态_新指令针」)于「新栈针」
)
或有「其他」则
((「致命退出」于「一三三」于(「静态串」于『不支持的常量表达式指令』));
「后」)
而
「逐」于「起」于「基」
也。
「:文言:常量式之求,工作栈自值栈之基起(实例化时栈空,可用)。汉语:常量表达式求值(工作栈从值栈基址起,只在实例化时栈为空的时候用;运行期的 table.init 用 求值常量式于 指定安全的基址)。:」
「求值常量式」乃化「整数」而化「整数」而「整数」也。
「求值常量式」者会「起」而会「目标」而
「求值常量式于」于「起」于「目标」于(「读四」于「状态_值栈基」)
也。