@@ -512,95 +512,119 @@ opcode description reference
512
512
0x0f dst += src `Arithmetic instructions `_
513
513
0x14 dst = (uint32_t)(dst - imm) `Arithmetic instructions `_
514
514
0x15 if dst == imm goto +offset `Jump instructions `_
515
+ 0x16 if (uint32_t)dst == imm goto +offset `Jump instructions `_
515
516
0x17 dst -= imm `Arithmetic instructions `_
516
517
0x18 dst = imm `Load and store instructions `_
517
518
0x1c dst = (uint32_t)(dst - src) `Arithmetic instructions `_
518
519
0x1d if dst == src goto +offset `Jump instructions `_
520
+ 0x1e if (uint32_t)dst == (uint32_t)src goto +offset `Jump instructions `_
519
521
0x1f dst -= src `Arithmetic instructions `_
520
522
0x20 dst = ntohl(*(uint32_t *)(R6->data + imm)) `Load and store instructions`_
521
523
0x24 dst = (uint32_t)(dst * imm) `Arithmetic instructions`_
522
524
0x25 if dst > imm goto +offset `Jump instructions`_
525
+ 0x26 if (uint32_t)dst > imm goto +offset `Jump instructions`_
523
526
0x27 dst *= imm `Arithmetic instructions`_
524
527
0x28 dst = ntohs(*(uint16_t *)(R6->data + imm)) `Load and store instructions`_
525
528
0x2c dst = (uint32_t)(dst * src) `Arithmetic instructions`_
526
529
0x2d if dst > src goto +offset `Jump instructions`_
530
+ 0x2e if (uint32_t)dst > (uint32_t)src goto +offset `Jump instructions`_
527
531
0x2f dst *= src `Arithmetic instructions`_
528
532
0x30 dst = (*(uint8_t *)(R6->data + imm)) `Load and store instructions`_
529
533
0x34 dst = (uint32_t)(dst / imm) `Arithmetic instructions`_
530
534
0x35 if dst >= imm goto +offset `Jump instructions`_
535
+ 0x36 if (uint32_t)dst >= imm goto +offset `Jump instructions`_
531
536
0x37 dst /= imm `Arithmetic instructions`_
532
537
0x38 dst = ntohll(*(uint64_t *)(R6->data + imm)) `Load and store instructions`_
533
538
0x3c dst = (uint32_t)(dst / src) `Arithmetic instructions`_
534
539
0x3d if dst >= src goto +offset `Jump instructions`_
540
+ 0x3e if (uint32_t)dst >= (uint32_t)src goto +offset `Jump instructions`_
535
541
0x3f dst /= src `Arithmetic instructions`_
536
542
0x40 dst = ntohl(*(uint32_t *)(R6->data + src + imm)) `Load and store instructions`_
537
543
0x44 dst = (uint32_t)(dst \| imm) `Arithmetic instructions`_
538
544
0x45 if dst & imm goto +offset `Jump instructions`_
545
+ 0x46 if (uint32_t)dst & imm goto +offset `Jump instructions`_
539
546
0x47 dst |= imm `Arithmetic instructions`_
540
547
0x48 dst = ntohs(*(uint16_t *)(R6->data + src + imm)) `Load and store instructions`_
541
548
0x4c dst = (uint32_t)(dst \| src) `Arithmetic instructions`_
542
549
0x4d if dst & src goto +offset `Jump instructions`_
550
+ 0x4e if (uint32_t)dst & (uint32_t)src goto +offset `Jump instructions`_
543
551
0x4f dst |= src `Arithmetic instructions`_
544
552
0x50 dst = *(uint8_t *)(R6->data + src + imm)) `Load and store instructions`_
545
553
0x54 dst = (uint32_t)(dst & imm) `Arithmetic instructions`_
546
554
0x55 if dst != imm goto +offset `Jump instructions`_
555
+ 0x56 if (uint32_t)dst != imm goto +offset `Jump instructions`_
547
556
0x57 dst &= imm `Arithmetic instructions`_
548
557
0x58 dst = ntohll(*(uint64_t *)(R6->data + src + imm)) `Load and store instructions`_
549
558
0x5c dst = (uint32_t)(dst & src) `Arithmetic instructions`_
550
559
0x5d if dst != src goto +offset `Jump instructions`_
560
+ 0x5e if (uint32_t)dst != (uint32_t)src goto +offset `Jump instructions`_
551
561
0x5f dst &= src `Arithmetic instructions`_
552
562
0x61 dst = *(uint32_t *)(src + offset) `Load and store instructions`_
553
563
0x62 *(uint32_t *)(dst + offset) = imm `Load and store instructions`_
554
564
0x63 *(uint32_t *)(dst + offset) = src `Load and store instructions`_
555
565
0x64 dst = (uint32_t)(dst << imm) `Arithmetic instructions`_
556
566
0x65 if dst s> imm goto +offset `Jump instructions`_
567
+ 0x66 if (int32_t)dst s> (int32_t)imm goto +offset `Jump instructions`_
557
568
0x67 dst <<= imm `Arithmetic instructions`_
558
569
0x69 dst = *(uint16_t *)(src + offset) `Load and store instructions`_
559
570
0x6a *(uint16_t *)(dst + offset) = imm `Load and store instructions`_
560
571
0x6b *(uint16_t *)(dst + offset) = src `Load and store instructions`_
561
572
0x6c dst = (uint32_t)(dst << src) `Arithmetic instructions`_
562
573
0x6d if dst s> src goto +offset `Jump instructions`_
574
+ 0x6e if (int32_t)dst s> (int32_t)src goto +offset `Jump instructions`_
563
575
0x6f dst <<= src `Arithmetic instructions`_
564
576
0x71 dst = *(uint8_t *)(src + offset) `Load and store instructions`_
565
577
0x72 *(uint8_t *)(dst + offset) = imm `Load and store instructions`_
566
578
0x73 *(uint8_t *)(dst + offset) = src `Load and store instructions`_
567
579
0x74 dst = (uint32_t)(dst >> imm) `Arithmetic instructions`_
568
580
0x75 if dst s>= imm goto +offset `Jump instructions`_
581
+ 0x76 if (int32_t)dst s>= (int32_t)imm goto +offset `Jump instructions`_
569
582
0x77 dst >>= imm `Arithmetic instructions`_
570
583
0x79 dst = *(uint64_t *)(src + offset) `Load and store instructions`_
571
584
0x7a *(uint64_t *)(dst + offset) = imm `Load and store instructions`_
572
585
0x7b *(uint64_t *)(dst + offset) = src `Load and store instructions`_
573
586
0x7c dst = (uint32_t)(dst >> src) `Arithmetic instructions`_
574
587
0x7d if dst s>= src goto +offset `Jump instructions`_
588
+ 0x7e if (int32_t)dst s>= (int32_t)src goto +offset `Jump instructions`_
575
589
0x7f dst >>= src `Arithmetic instructions`_
576
590
0x84 dst = (uint32_t)-dst `Arithmetic instructions`_
577
591
0x85 call imm `Jump instructions`_
578
592
0x87 dst = -dst `Arithmetic instructions`_
579
593
0x94 dst = (uint32_t)(dst % imm) `Arithmetic instructions`_
580
- 0x95 exit `Jump instructions`_
594
+ 0x95 return `Jump instructions`_
581
595
0x97 dst %= imm `Arithmetic instructions`_
582
596
0x9c dst = (uint32_t)(dst % src) `Arithmetic instructions`_
583
597
0x9f dst %= src `Arithmetic instructions`_
584
598
0xa4 dst = (uint32_t)(dst ^ imm) `Arithmetic instructions`_
585
599
0xa5 if dst < imm goto +offset `Jump instructions`_
600
+ 0xa6 if (uint32_t)dst < imm goto +offset `Jump instructions`_
586
601
0xa7 dst ^= imm `Arithmetic instructions`_
587
602
0xac dst = (uint32_t)(dst ^ src) `Arithmetic instructions`_
588
603
0xad if dst < src goto +offset `Jump instructions`_
604
+ 0xae if (uint32_t)dst < (uint32_t)src goto +offset `Jump instructions`_
589
605
0xaf dst ^= src `Arithmetic instructions`_
590
606
0xb4 dst = (uint32_t) imm `Arithmetic instructions`_
591
607
0xb5 if dst <= imm goto +offset `Jump instructions`_
608
+ 0xa6 if (uint32_t)dst <= imm goto +offset `Jump instructions`_
592
609
0xb7 dst = imm `Arithmetic instructions`_
593
610
0xbc dst = (uint32_t) src `Arithmetic instructions`_
594
611
0xbd if dst <= src goto +offset `Jump instructions`_
612
+ 0xbe if (uint32_t)dst <= (uint32_t)src goto +offset `Jump instructions`_
595
613
0xbf dst = src `Arithmetic instructions`_
614
+ 0xc3 (see reference) `Atomic operations`_
596
615
0xc4 dst = (uint32_t)(dst s>> imm) `Arithmetic instructions`_
597
616
0xc5 if dst s< imm goto +offset `Jump instructions`_
617
+ 0xc6 if (int32_t)dst s< (int32_t)imm goto +offset `Jump instructions`_
598
618
0xc7 dst s>>= imm `Arithmetic instructions`_
599
619
0xcc dst = (uint32_t)(dst s>> src) `Arithmetic instructions`_
600
620
0xcd if dst s< src goto +offset `Jump instructions`_
621
+ 0xce if (int32_t)dst s< (int32_t)src goto +offset `Jump instructions`_
601
622
0xcf dst s>>= src `Arithmetic instructions`_
602
623
0xd4 dst = htole.imm(dst) `Byte swap instructions`_
603
624
0xd5 if dst s<= imm goto +offset `Jump instructions`_
625
+ 0xd6 if (int32_t)dst s<= (int32_t)imm goto +offset `Jump instructions`_
626
+ 0xdb (see reference) `Atomic operations`_
604
627
0xdc dst = htobe.imm(dst) `Byte swap instructions`_
605
628
0xdd if dst s<= src goto +offset `Jump instructions`_
629
+ 0xde if (int32_t)dst s<= (int32_t)src goto +offset `Jump instructions`_
606
630
====== ================================================= =============
0 commit comments