Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1.                 cpu     vax-11/780
  2.                 page    0
  3.                 accmode kernel
  4.  
  5. pcr             equ     pc
  6. spr             equ     sp
  7. fpr             equ     fp
  8. apr             equ     ap
  9.  
  10. r_0             equ     r0
  11. r_1             equ     r1
  12. r_2             equ     r2
  13. r_3             equ     r3
  14. r_4             equ     r4
  15. r_5             equ     r5
  16. r_6             equ     r6
  17. r_7             equ     r7
  18. r_8             equ     r8
  19. r_9             equ     r9
  20. r_10            equ     r10
  21. r_11            equ     r11
  22. r_12            equ     r12
  23. r_13            equ     r13
  24. r_14            equ     r14
  25. r_15            equ     r15
  26.  
  27. only_reg_x      macro   op,code
  28.                 op      r4              ; code 54
  29.                 endm
  30.  
  31. only_mem_x      macro   op,code
  32.                 op      @r4             ; code 64
  33.                 op      (r4)            ; code 64
  34.                 op      @(r4)           ; code B4 00
  35.                 op      -(r4)           ; code 74
  36.                 op      (r4)+           ; code 84
  37.                 op      @(r4)+          ; code 94
  38.                 op      4(r4)           ; code A4 04
  39.                 op      @4(r4)          ; code B4 04
  40.                 op      b^4(r4)         ; code A4 04
  41.                 op      @b^4(r4)        ; code B4 04
  42.                 op      w^4(r4)         ; code C4 04 00
  43.                 op      @w^4(r4)        ; code D4 04 00
  44.                 op      l^4(r4)         ; code E4 04 00 00 00
  45.                 op      @l^4(r4)        ; code F4 04 00 00 00
  46.                 expect  1107,1107
  47.                 op      s^4(r4)         ; invalid attribute
  48.                 op      @s^4(r4)        ; invalid attribute
  49.                 endexpect
  50.                 op      444(r4)         ; code C4 BC 01
  51.                 op      @444(r4)        ; code D4 BC 01
  52.                 expect  1320,1320
  53.                 op      b^444(r4)       ; out of range
  54.                 op      @b^444(r4)      ; out of range
  55.                 endexpect
  56.                 op      w^444(r4)       ; code C4 BC 01
  57.                 op      @w^444(r4)      ; code D4 BC 01
  58.                 op      l^444(r4)       ; code E4 BC 01 00 00
  59.                 op      @l^444(r4)      ; code F4 BC 01 00 00
  60.                 op      444444(r4)      ; code E4 1C C8 06 00
  61.                 op      @444444(r4)     ; code F4 1C C8 06 00
  62.                 expect  1320,1320,1320,1320
  63.                 op      b^444444(r4)
  64.                 op      @b^444444(r4)
  65.                 op      w^444444(r4)
  66.                 op      @w^444444(r4)
  67.                 endexpect
  68.                 op      l^444444(r4)    ; code E4 1C C8 06 00
  69.                 op      @l^444444(r4)   ; code F4 1C C8 06 00
  70.                 op      @#44            ; code 9F 2C 00 00 00
  71.                 op      @#444           ; code 9F BC 01 00 00
  72.                 op      @#444444        ; code 9F 1C C8 06 00
  73.                 op      *+44            ; code AF 29
  74.                 op      b^*+44          ; code AF 29
  75.                 op      w^*+44          ; code CF 28 00
  76.                 op      l^*+44          ; code EF 26 00 00 00
  77.                 op      *+444           ; code CF B8 01
  78.                 expect 1320
  79.                 op      b^*+444         ; out of range
  80.                 endexpect
  81.                 op      w^*+444         ; code CF B8 01
  82.                 op      l^*+444         ; code EF B6 01 00 00
  83.                 op      *+444444        ; code EF 16 C8 06 00
  84.                 expect  1320,1320
  85.                 op      b^*+444444      ; out of range
  86.                 op      w^*+444444      ; out of range
  87.                 endexpect
  88.                 op      l^*+444444      ; code EF 16 C8 06 00
  89.                 expect  1107
  90.                 op      s^*+444444      ; invalid attribute
  91.                 endexpect
  92.                 expect  1350
  93.                 op      r4[r6]  ; not allowed
  94.                 endexpect
  95.                 op      (r4)[r6]        ; code 46 64
  96.                 op      (r4)+[r6]       ; code 46 84
  97.                 op      @(r4)+[r6]      ; code 46 94
  98.                 op      -(r4)[r6]       ; code 46 74
  99.                 op      @#444[r6]       ; code 46 9F BC 01 00 00
  100.                 op      @4(r4)[r6]      ; code 46 B4 04
  101.                 op      *+44[r6]        ; code 46 AF 28
  102.                 op      *+444[r6]       ; code 46 CF B7 01
  103.                 op      *+444444[r6]    ; code 46 EF 15 C8 06 00
  104.                 endm
  105.  
  106. no_imm_x        macro   op, code
  107.                 only_reg_x op, code
  108.                 only_mem_x op, code
  109.                 endm
  110.  
  111. all_b           macro   op, code
  112.                 no_imm_x op, code
  113.                 op      #4              ; code 04
  114.                 op      s^#4            ; code 04
  115.                 op      i^#4            ; code 8F 04
  116.                 op      #88             ; code 8F 58
  117.                 expect  1107
  118.                 op      b^#4            ; invalid attribute
  119.                 endexpect
  120.                 expect  1320
  121.                 op      s^#88           ; out of range 0..63
  122.                 endexpect
  123.                 op      i^#88           ; code 8F 58
  124.                 endm
  125.  
  126. all_w           macro   op, code
  127.                 no_imm_x op, code
  128.                 op      #4              ; code 04
  129.                 op      s^#4            ; code 04
  130.                 op      i^#4            ; code 8F 04
  131.                 op      #444            ; code 8F BC 01
  132.                 expect  1107
  133.                 op      b^#4            ; invalid attribute
  134.                 endexpect
  135.                 expect  1320
  136.                 op      s^#444          ; out of range 0..63
  137.                 endexpect
  138.                 op      i^#444          ; code 8F BC 01
  139.                 endm
  140.  
  141. all_l           macro   op, code
  142.                 no_imm_x op, code
  143.                 op      #4              ; code 04
  144.                 op      s^#4            ; code 04
  145.                 op      i^#4            ; code 8F 04
  146.                 op      #444444         ; code 8F 16 C8 06 00
  147.                 expect  1107
  148.                 op      b^#4            ; invalid attribute
  149.                 endexpect
  150.                 expect  1320
  151.                 op      s^#444444       ; out of range 0..63
  152.                 endexpect
  153.                 op      i^#444444       ; code 8F 16 C8 06 00
  154.                 endm
  155.  
  156. all_f           macro   op, code
  157.                 no_imm_x op, code
  158.                 op      #1.5            ; code 0C
  159.                 op      s^#1.5          ; code 0C
  160.                 op      i^#1.5          ; code 8F C0 40 00 00
  161.                 op      #1000.5         ; code 8F 7A 45 00 20
  162.                 expect  1107
  163.                 op      b^#4            ; invalid attribute
  164.                 endexpect
  165.                 expect  1320
  166.                 op      s^#1000.5       ; out of range 0..63
  167.                 endexpect
  168.                 op      i^#1000.5       ; code 8F 7A 45 00 20
  169.                 endm
  170.  
  171. all_d           macro   op, code
  172.                 no_imm_x op, code
  173.                 op      #1.5            ; code 0C
  174.                 op      s^#1.5          ; code 0C
  175.                 op      i^#1.5          ; code 8F C0 40 00 00 00 00 00 00
  176.                 op      #1000.5         ; code 8F 7A 45 00 20 00 00 00 00
  177.                 expect  1107
  178.                 op      b^#4            ; invalid attribute
  179.                 endexpect
  180.                 expect  1320
  181.                 op      s^#1000.5       ; out of range 0..63
  182.                 endexpect
  183.                 op      i^#1000.5       ; code 8F 7A 45 00 20 00 00 00 00
  184.                 endm
  185.  
  186. all_g           macro   op, code
  187.                 no_imm_x op, code
  188.                 op      #1.5            ; code 0C
  189.                 op      s^#1.5          ; code 0C
  190.                 op      i^#1.5          ; code 8F 18 40 00 00 00 00 00 00
  191.                 op      #1000.5         ; code 8F AF 40 00 44 00 00 00 00
  192.                 expect  1107
  193.                 op      b^#4            ; invalid attribute
  194.                 endexpect
  195.                 expect  1320
  196.                 op      s^#1000.5       ; out of range 0..63
  197.                 endexpect
  198.                 op      i^#1000.5       ; code 8F AF 40 00 44 00 00 00 00
  199.                 endm
  200.  
  201. all_h           macro   op, code
  202.                 no_imm_x op, code
  203.                 op      #1.5            ; code 0C
  204.                 op      s^#1.5          ; code 0C
  205.                 op      i^#1.5          ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00
  206.                 op      #1000.5         ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00
  207.                 expect  1107
  208.                 op      b^#4            ; invalid attribute
  209.                 endexpect
  210.                 expect  1320
  211.                 op      s^#1000.5       ; out of range 0..63
  212.                 endexpect
  213.                 op      i^#1000.5       ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00
  214.                 endm
  215.  
  216. all_no_imm_b    macro   op, code
  217.                 no_imm_x op, code
  218.                 expect  1350,1350,1350,1350
  219.                 op      #4              ; invalid addressing mode
  220.                 op      s^#4            ; invalid addressing mode
  221.                 op      i^#4            ; invalid addressing mode
  222.                 op      #88             ; invalid addressing mode
  223.                 endexpect
  224.                 expect  1107
  225.                 op      b^#4            ; invalid attribute
  226.                 endexpect
  227.                 expect  1320
  228.                 op      s^#88           ; out of range 0..63
  229.                 endexpect
  230.                 expect  1350
  231.                 op      i^#88           ; invalid addressing mode
  232.                 endexpect
  233.                 endm
  234.  
  235. all_no_imm_w    macro   op, code
  236.                 no_imm_x op, code
  237.                 expect  1350,1350,1350,1350
  238.                 op      #4              ; invalid addressing mode
  239.                 op      s^#4            ; invalid addressing mode
  240.                 op      i^#4            ; invalid addressing mode
  241.                 op      #444            ; invalid addressing mode
  242.                 endexpect
  243.                 expect  1107
  244.                 op      b^#4            ; invalid attribute
  245.                 endexpect
  246.                 expect  1320
  247.                 op      s^#444          ; out of range 0..63
  248.                 endexpect
  249.                 expect  1350
  250.                 op      i^#444          ; invalid addressing mode
  251.                 endexpect
  252.                 endm
  253.  
  254. all_no_imm_l    macro   op, code
  255.                 no_imm_x op, code
  256.                 expect  1350,1350,1350,1350
  257.                 op      #4              ; invalid addressing mode
  258.                 op      s^#4            ; invalid addressing mode
  259.                 op      i^#4            ; invalid addressing mode
  260.                 op      #444444         ; invalid addressing mode
  261.                 endexpect
  262.                 expect  1107
  263.                 op      b^#4            ; invalid attribute
  264.                 endexpect
  265.                 expect  1320
  266.                 op      s^#444444       ; out of range 0..63
  267.                 endexpect
  268.                 expect  1350
  269.                 op      i^#444444       ; invalid addressing mode
  270.                 endexpect
  271.                 endm
  272.  
  273. all_no_imm_q    macro   op, code
  274.                 no_imm_x op, code
  275.                 expect  1350,1350,1350,1350
  276.                 op      #4              ; invalid addressing mode
  277.                 op      s^#4            ; invalid addressing mode
  278.                 op      i^#4            ; invalid addressing mode
  279.                 op      #44444444       ; invalid addressing mode
  280.                 endexpect
  281.                 expect  1107
  282.                 op      b^#4            ; invalid attribute
  283.                 endexpect
  284.                 expect  1320
  285.                 op      s^#44444444     ; out of range 0..63
  286.                 endexpect
  287.                 expect  1350
  288.                 op      i^#44444444     ; invalid addressing mode
  289.                 endexpect
  290.                 endm
  291.  
  292. all_no_imm_o    macro   op, code
  293.                 no_imm_x op, code
  294.                 expect  1350,1350,1350,1350
  295.                 op      #4              ; invalid addressing mode
  296.                 op      s^#4            ; invalid addressing mode
  297.                 op      i^#4            ; invalid addressing mode
  298.                 op      #44444444       ; invalid addressing mode
  299.                 endexpect
  300.                 expect  1107
  301.                 op      b^#4            ; invalid attribute
  302.                 endexpect
  303.                 expect  1320
  304.                 op      s^#44444444     ; out of range 0..63
  305.                 endexpect
  306.                 expect  1350
  307.                 op      i^#44444444     ; invalid addressing mode
  308.                 endexpect
  309.                 endm
  310.  
  311. all_no_imm_f    macro   op, code
  312.                 no_imm_x op, code
  313.                 expect  1350,1350,1350,1350
  314.                 op      #1.5            ; invalid addressing mode
  315.                 op      s^#1.5          ; invalid addressing mode
  316.                 op      i^#1.5          ; invalid addressing mode
  317.                 op      #1000.5         ; invalid addressing mode
  318.                 endexpect
  319.                 expect  1107
  320.                 op      b^#1.5          ; invalid attribute
  321.                 endexpect
  322.                 expect  1320
  323.                 op      s^#1000.5       ; out of range 0..63
  324.                 endexpect
  325.                 expect  1350
  326.                 op      i^#1000.5       ; invalid addressing mode
  327.                 endexpect
  328.                 endm
  329.  
  330. all_no_imm_d    macro   op, code
  331.                 no_imm_x op, code
  332.                 expect  1350,1350,1350,1350
  333.                 op      #1.5            ; invalid addressing mode
  334.                 op      s^#1.5          ; invalid addressing mode
  335.                 op      i^#1.5          ; invalid addressing mode
  336.                 op      #1000.5         ; invalid addressing mode
  337.                 endexpect
  338.                 expect  1107
  339.                 op      b^#1.5          ; invalid attribute
  340.                 endexpect
  341.                 expect  1320
  342.                 op      s^#1000.5       ; out of range 0..63
  343.                 endexpect
  344.                 expect  1350
  345.                 op      i^#1000.5       ; invalid addressing mode
  346.                 endexpect
  347.                 endm
  348.  
  349. all_no_imm_g    macro   op, code
  350.                 no_imm_x op, code
  351.                 expect  1350,1350,1350,1350
  352.                 op      #1.5            ; invalid addressing mode
  353.                 op      s^#1.5          ; invalid addressing mode
  354.                 op      i^#1.5          ; invalid addressing mode
  355.                 op      #1000.5         ; invalid addressing mode
  356.                 endexpect
  357.                 expect  1107
  358.                 op      b^#1.5          ; invalid attribute
  359.                 endexpect
  360.                 expect  1320
  361.                 op      s^#1000.5       ; out of range 0..63
  362.                 endexpect
  363.                 expect  1350
  364.                 op      i^#1000.5       ; invalid addressing mode
  365.                 endexpect
  366.                 endm
  367.  
  368. all_no_imm_h    macro   op, code
  369.                 no_imm_x op, code
  370.                 expect  1350,1350,1350,1350
  371.                 op      #1.5            ; invalid addressing mode
  372.                 op      s^#1.5          ; invalid addressing mode
  373.                 op      i^#1.5          ; invalid addressing mode
  374.                 op      #1000.5         ; invalid addressing mode
  375.                 endexpect
  376.                 expect  1107
  377.                 op      b^#1.5          ; invalid attribute
  378.                 endexpect
  379.                 expect  1320
  380.                 op      s^#1000.5       ; out of range 0..63
  381.                 endexpect
  382.                 expect  1350
  383.                 op      i^#1000.5       ; invalid addressing mode
  384.                 endexpect
  385.                 endm
  386.  
  387. all_addr_b      macro   op, code
  388.                 expect  1350
  389.                 op      r4
  390.                 endexpect
  391.                 only_mem_x op, code
  392.                 op      #4              ; code 8F 04 (immediate because no literal mode for 'a')
  393.                 expect  1350
  394.                 op      s^#4            ; invalid addressing mode (no literal mode for 'a')
  395.                 endexpect
  396.                 op      i^#4            ; code 8F 04
  397.                 op      #88             ; code 8F 58
  398.                 expect  1107
  399.                 op      b^#4            ; invalid attribute
  400.                 endexpect
  401.                 expect  1320
  402.                 op      s^#88           ; out of range 0..63
  403.                 endexpect
  404.                 op      i^#88           ; code 8F 58
  405.                 endm
  406.  
  407. all_addr_w      macro   op, code
  408.                 expect  1350
  409.                 op      r4
  410.                 endexpect
  411.                 only_mem_x op, code
  412.                 op      #4              ; code 8F 04 00 (immediate because no literal mode for 'a')
  413.                 expect  1350
  414.                 op      s^#4            ; invalid addressing mode (no literal mode for 'a')
  415.                 endexpect
  416.                 op      i^#4            ; code 8F 04 00
  417.                 op      #444            ; code 8F BC 01
  418.                 expect  1107
  419.                 op      b^#4            ; invalid attribute
  420.                 endexpect
  421.                 expect  1320
  422.                 op      s^#444          ; out of range 0..63
  423.                 endexpect
  424.                 op      i^#444          ; code 8F BC 01
  425.                 endm
  426.  
  427. all_addr_l      macro   op, code
  428.                 expect  1350
  429.                 op      r4
  430.                 endexpect
  431.                 only_mem_x op, code
  432.                 op      #4              ; code 8F 04 00 00 00 (immediate because no literal mode for 'a')
  433.                 expect  1350
  434.                 op      s^#4            ; invalid addressing mode (no literal mode for 'a')
  435.                 endexpect
  436.                 op      i^#4            ; code 8F 04 00 00 00
  437.                 op      #444444         ; code 8F 1C C8 06 00
  438.                 expect  1107
  439.                 op      b^#4            ; invalid attribute
  440.                 endexpect
  441.                 expect  1320
  442.                 op      s^#444444       ; out of range 0..63
  443.                 endexpect
  444.                 op      i^#444444       ; code 8F 1C C8 06 00
  445.                 endm
  446.  
  447. all_addr_q      macro   op, code
  448.                 expect  1350
  449.                 op      r4
  450.                 endexpect
  451.                 only_mem_x op, code
  452.                 op      #4              ; code 8F 04 00 00 00 00 00 00 00 (immediate because no literal mode for 'a')
  453.                 expect  1350
  454.                 op      s^#4            ; invalid addressing mode (no literal mode for 'a')
  455.                 endexpect
  456.                 op      i^#4            ; code 8F 04 00 00 00 00 00 00 00
  457.                 op      #44444444       ; code 8F 1C 2B A6 02 00 00 00 00
  458.                 expect  1107
  459.                 op      b^#4            ; invalid attribute
  460.                 endexpect
  461.                 expect  1320
  462.                 op      s^#44444444     ; out of range 0..63
  463.                 endexpect
  464.                 op      i^#44444444     ; code 8F 1C 2B A6 02 00 00 00 00
  465.                 endm
  466.  
  467. all_addr_o      macro   op, code
  468.                 expect  1350
  469.                 op      r4
  470.                 endexpect
  471.                 only_mem_x op, code
  472.                 op      #4              ; code 8F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (immediate because no literal mode for 'a')
  473.                 expect  1350
  474.                 op      s^#4            ; invalid addressing mode (no literal mode for 'a')
  475.                 endexpect
  476.                 op      i^#4            ; code 8F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  477.                 op      #44444444       ; code 8F 1C 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00
  478.                 expect  1107
  479.                 op      b^#4            ; invalid attribute
  480.                 endexpect
  481.                 expect  1320
  482.                 op      s^#44444444     ; out of range 0..63
  483.                 endexpect
  484.                 op      i^#44444444     ; code 8F 1C 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00
  485.                 endm
  486.  
  487. all_addr_f      macro   op, code
  488.                 expect  1350
  489.                 op      r4
  490.                 endexpect
  491.                 only_mem_x op, code
  492.                 op      #1.5            ; code 8F C0 40 00 00 (immediate because no literal mode for 'a')
  493.                 expect  1350
  494.                 op      s^#1.5          ; invalid addressing mode (no literal mode for 'a')
  495.                 endexpect
  496.                 op      i^#1.5          ; code 8F C0 40 00 00
  497.                 op      #1000.5         ; code 8F 7A 45 00 20
  498.                 expect  1107
  499.                 op      b^#1.5          ; invalid attribute
  500.                 endexpect
  501.                 expect  1320
  502.                 op      s^#1000.5       ; out of range 0..63
  503.                 endexpect
  504.                 op      i^#1000.5       ; code 8F 7A 45 00 20
  505.                 endm
  506.  
  507. all_addr_d      macro   op, code
  508.                 expect  1350
  509.                 op      r4
  510.                 endexpect
  511.                 only_mem_x op, code
  512.                 op      #1.5            ; code 8F C0 40 00 00 00 00 (immediate because no literal mode for 'a')
  513.                 expect  1350
  514.                 op      s^#1.5          ; invalid addressing mode (no literal mode for 'a')
  515.                 endexpect
  516.                 op      i^#1.5          ; code 8F C0 40 00 00 00 00 00 00
  517.                 op      #1000.5         ; code 8F 7A 45 00 20 00 00 00 00
  518.                 expect  1107
  519.                 op      b^#1.5          ; invalid attribute
  520.                 endexpect
  521.                 expect  1320
  522.                 op      s^#1000.5       ; out of range 0..63
  523.                 endexpect
  524.                 op      i^#1000.5       ; code 8F 7A 45 00 20 00 00 00 00
  525.                 endm
  526.  
  527. all_addr_g      macro   op, code
  528.                 expect  1350
  529.                 op      r4
  530.                 endexpect
  531.                 only_mem_x op, code
  532.                 op      #1.5            ; code 8F 18 40 00 00 00 00 00 00 (immediate because no literal mode for 'a')
  533.                 expect  1350
  534.                 op      s^#1.5          ; invalid addressing mode (no literal mode for 'a')
  535.                 endexpect
  536.                 op      i^#1.5          ; code 8F 18 40 00 00 00 00 00 00
  537.                 op      #1000.5         ; code 8F AF 40 00 44 00 00 00 00
  538.                 expect  1107
  539.                 op      b^#1.5          ; invalid attribute
  540.                 endexpect
  541.                 expect  1320
  542.                 op      s^#1000.5       ; out of range 0..63
  543.                 endexpect
  544.                 op      i^#1000.5       ; code 8F AF 40 00 44 00 00 00 00
  545.                 endm
  546.  
  547. all_addr_h      macro   op, code
  548.                 expect  1350
  549.                 op      r4
  550.                 endexpect
  551.                 only_mem_x op, code
  552.                 op      #1.5            ; code 8F  (immediate because no literal mode for 'a')
  553.                 expect  1350
  554.                 op      s^#1.5          ; invalid addressing mode (no literal mode for 'a')
  555.                 endexpect
  556.                 op      i^#1.5          ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00
  557.                 op      #1000.5         ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00
  558.                 expect  1107
  559.                 op      b^#1.5          ; invalid attribute
  560.                 endexpect
  561.                 expect  1320
  562.                 op      s^#1000.5       ; out of range 0..63
  563.                 endexpect
  564.                 op      i^#1000.5       ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00
  565.                 endm
  566.  
  567. only_reg_2_r_x  macro   op, code
  568.                 op      r4,r5           ; code 54 55
  569.                 endm
  570.  
  571. only_mem_2_r_x  macro   op,code
  572.                 op      @r4,r5          ; code 64 55
  573.                 op      (r4),r5         ; code 64 55
  574.                 op      @(r4),r5        ; code B4 00 55
  575.                 op      -(r4),r5        ; code 74 55
  576.                 op      (r4)+,r5        ; code 84 55
  577.                 op      @(r4)+,r5       ; code 94 55
  578.                 op      4(r4),r5        ; code A4 04 55
  579.                 op      @4(r4),r5       ; code B4 04 55
  580.                 op      b^4(r4),r5      ; code A4 04 55
  581.                 op      @b^4(r4),r5     ; code B4 04 55
  582.                 op      w^4(r4),r5      ; code C4 04 00 55
  583.                 op      @w^4(r4),r5     ; code D4 04 00 55
  584.                 op      l^4(r4),r5      ; code E4 04 00 00 00 55
  585.                 op      @l^4(r4),r5     ; code F4 04 00 00 00 55
  586.                 expect  1107,1107
  587.                 op      s^4(r4),r5      ; invalid attribute
  588.                 op      @s^4(r4),r5     ; invalid attribute
  589.                 endexpect
  590.                 op      444(r4),r5      ; code C4 BC 01 55
  591.                 op      @444(r4),r5     ; code D4 BC 01 55
  592.                 expect  1320,1320
  593.                 op      b^444(r4),r5    ; out of range
  594.                 op      @b^444(r4),r5   ; out of range
  595.                 endexpect
  596.                 op      w^444(r4),r5    ; code C4 BC 01 55
  597.                 op      @w^444(r4),r5   ; code D4 BC 01 55
  598.                 op      l^444(r4),r5    ; code E4 BC 01 00 00 55
  599.                 op      @l^444(r4),r5   ; code F4 BC 01 00 00 55
  600.                 op      444444(r4),r5   ; code E4 1C C8 06 00 55
  601.                 op      @444444(r4),r5  ; code F4 1C C8 06 00 55
  602.                 expect  1320,1320,1320,1320
  603.                 op      b^444444(r4),r5
  604.                 op      @b^444444(r4),r5
  605.                 op      w^444444(r4),r5
  606.                 op      @w^444444(r4),r5
  607.                 endexpect
  608.                 op      l^444444(r4),r5 ; code E4 1C C8 06 00 55
  609.                 op      @l^444444(r4),r5 ; code F4 1C C8 06 00 55
  610.                 op      @#44,r5         ; code 9F 2C 00 00 00 55
  611.                 op      @#444,r5        ; code 9F BC 01 00 00 55
  612.                 op      @#444444,r5     ; code 9F 1C C8 06 00 55
  613.                 op      *+44,r5         ; code AF 29 55
  614.                 op      b^*+44,r5       ; code AF 29 55
  615.                 op      w^*+44,r5       ; code CF 28 00 55
  616.                 op      l^*+44,r5       ; code EF 26 00 00 00 55
  617.                 op      *+444,r5        ; code CF B8 01 55
  618.                 expect 1320
  619.                 op      b^*+444,r5      ; out of range
  620.                 endexpect
  621.                 op      w^*+444,r5      ; code CF B8 01 55
  622.                 op      l^*+444,r5      ; code EF B6 01 00 00 55
  623.                 op      *+444444,r5     ; code EF 16 C8 06 00 55
  624.                 expect  1320,1320
  625.                 op      b^*+444444,r5   ; out of range
  626.                 op      w^*+444444,r5   ; out of range
  627.                 endexpect
  628.                 op      l^*+444444,r5   ; code EF 16 C8 06 00 55
  629.                 expect  1107
  630.                 op      s^*+444444,r5   ; invalid attribute
  631.                 endexpect
  632.                 expect  1350
  633.                 op      r4[r6],r5       ; not allowed
  634.                 endexpect
  635.                 op      (r4)[r6],r5     ; code 46 64 55
  636.                 op      (r4)+[r6],r5    ; code 46 84 55
  637.                 op      @(r4)+[r6],r5   ; code 46 94 55
  638.                 op      -(r4)[r6],r5    ; code 46 74 55
  639.                 op      @#444[r6],r5    ; code 46 9F BC 01 00 00 55
  640.                 op      @4(r4)[r6],r5   ; code 46 B4 04 55
  641.                 op      *+44[r6],r5     ; code 46 AF 28 55
  642.                 op      *+444[r6],r5    ; code 46 CF B7 01 55
  643.                 op      *+444444[r6],r5 ; code 46 EF 15 C8 06 00 55
  644.                 endm
  645.  
  646. all_2_r_b       macro   op, code
  647.                 only_reg_2_r_x op, code
  648.                 only_mem_2_r_x op, code
  649.                 op      #4,r5           ; code 04 55
  650.                 op      s^#4,r5         ; code 04 55
  651.                 op      i^#4,r5         ; code 8F 04 55
  652.                 op      #88,r5          ; code 8F 58 55
  653.                 expect  1107
  654.                 op      b^#4,r5         ; invalid attribute
  655.                 endexpect
  656.                 expect  1320
  657.                 op      s^#88,r5        ; out of range 0..63
  658.                 endexpect
  659.                 op      i^#88,r5        ; code 8F 58 55
  660.                 endm
  661.  
  662. all_2_r_w       macro   op,code
  663.                 only_reg_2_r_x op, code
  664.                 only_mem_2_r_x op, code
  665.                 op      #4,r5           ; code 04 55
  666.                 op      s^#4,r5         ; code 04 55
  667.                 op      i^#4,r5         ; code 8F 04 00 55
  668.                 op      #444,r5         ; code 8F BC 01 55
  669.                 expect  1107
  670.                 op      b^#4,r5         ; invalid attribute
  671.                 endexpect
  672.                 expect  1320
  673.                 op      s^#444,r5       ; out of range 0..63
  674.                 endexpect
  675.                 op      i^#444,r5       ; code 8F BC 01 55
  676.                 endm
  677.  
  678. all_2_r_l       macro   op, code
  679.                 only_reg_2_r_x op, code
  680.                 only_mem_2_r_x op, code
  681.                 op      #4,r5           ; code 04 55
  682.                 op      s^#4,r5         ; code 04 55
  683.                 op      i^#4,r5         ; code 8F 04 00 00 00 55
  684.                 op      #444444,r5      ; code 8F 1C C8 06 00 55
  685.                 expect  1107
  686.                 op      b^#4,r5         ; invalid attribute
  687.                 endexpect
  688.                 expect  1320
  689.                 op      s^#444444,r5    ; out of range 0..63
  690.                 endexpect
  691.                 op      i^#444444,r5    ; code 8F 1C C8 06 00 55
  692.                 endm
  693.  
  694. all_2_r_q       macro   op, code
  695.                 only_reg_2_r_x op, code
  696.                 only_mem_2_r_x op, code
  697.                 op      #4,r5           ; code 04 55
  698.                 op      s^#4,r5         ; code 04 55
  699.                 op      i^#4,r5         ; code 8F 04 00 00 00 00 00 00 00 55
  700.                 op      #44444444,r5    ; code 8F 1C 2B A6 02 00 00 00 00 55
  701.                 expect  1107
  702.                 op      b^#4,r5         ; invalid attribute
  703.                 endexpect
  704.                 expect  1320
  705.                 op      s^#44444444,r5  ; out of range 0..63
  706.                 endexpect
  707.                 op      i^#44444444,r5  ; code 8F 1C 2B A6 02 00 00 00 00 55
  708.                 endm
  709.  
  710. all_2_r_o       macro   op, code
  711.                 only_reg_2_r_x op, code
  712.                 only_mem_2_r_x op, code
  713.                 op      #4,r5           ; code 04 55
  714.                 op      s^#4,r5         ; code 04 55
  715.                 op      i^#4,r5         ; code 8F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55
  716.                 op      #44444444,r5    ; code 8F 1C 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00 55
  717.                 expect  1107
  718.                 op      b^#4,r5         ; invalid attribute
  719.                 endexpect
  720.                 expect  1320
  721.                 op      s^#44444444,r5  ; out of range 0..63
  722.                 endexpect
  723.                 op      i^#44444444,r5  ; code 8F 1C 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00 55
  724.                 endm
  725.  
  726. all_2_r_f       macro   op, code
  727.                 only_reg_2_r_x op, code
  728.                 only_mem_2_r_x op, code
  729.                 op      #1.5,r5         ; code 0C 55
  730.                 op      s^#1.5,r5       ; code 0C 55
  731.                 op      i^#1.5,r5       ; code 8F C0 40 00 00 55
  732.                 op      #1000.5,r5      ; code 8F 7A 45 00 20 55
  733.                 expect  1107
  734.                 op      b^#1.5,r5       ; invalid attribute
  735.                 endexpect
  736.                 expect  1320
  737.                 op      s^#1000.5,r5    ; out of range 0.5 .. 120
  738.                 endexpect
  739.                 op      i^#1000.5,r5    ; code 8F 7A 45 00 20 55
  740.                 endm
  741.  
  742. all_2_r_d       macro   op, code
  743.                 only_reg_2_r_x op, code
  744.                 only_mem_2_r_x op, code
  745.                 op      #1.5,r5         ; code 0C 55
  746.                 op      s^#1.5,r5       ; code 0C 55
  747.                 op      i^#1.5,r5       ; code 8F C0 40 00 00 00 00 00 00 55
  748.                 op      #1000.5,r5      ; code 8F 7A 45 00 20 00 00 00 00 55
  749.                 expect  1107
  750.                 op      b^#1.5,r5       ; invalid attribute
  751.                 endexpect
  752.                 expect  1320
  753.                 op      s^#1000.5,r5    ; out of range 0.5 .. 120
  754.                 endexpect
  755.                 op      i^#1000.5,r5    ; code 8F 7A 45 00 20 00 00 00 00 55
  756.                 endm
  757.  
  758. all_2_r_g       macro   op, code
  759.                 only_reg_2_r_x op, code
  760.                 only_mem_2_r_x op, code
  761.                 op      #1.5,r5         ; code 0C 55
  762.                 op      s^#1.5,r5       ; code 0C 55
  763.                 op      i^#1.5,r5       ; code 8F 18 40 00 00 00 00 00 00 55
  764.                 op      #1000.5,r5      ; code 8F AF 40 00 44 00 00 00 00 55
  765.                 expect  1107
  766.                 op      b^#1.5,r5       ; invalid attribute
  767.                 endexpect
  768.                 expect  1320
  769.                 op      s^#1000.5,r5    ; out of range 0.5 .. 120
  770.                 endexpect
  771.                 op      i^#1000.5,r5    ; code 8F AF 40 00 44 00 00 00 00 55
  772.                 endm
  773.  
  774. all_2_r_h       macro   op, code
  775.                 only_reg_2_r_x op, code
  776.                 only_mem_2_r_x op, code
  777.                 op      #1.5,r5         ; code 0C 55
  778.                 op      s^#1.5,r5       ; code 0C 55
  779.                 op      i^#1.5,r5       ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00 55
  780.                 op      #1000.5,r5      ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55
  781.                 expect  1107
  782.                 op      b^#1.5,r5       ; invalid attribute
  783.                 endexpect
  784.                 expect  1320
  785.                 op      s^#1000.5,r5    ; out of range 0.5 .. 120
  786.                 endexpect
  787.                 op      i^#1000.5,r5    ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55
  788.                 endm
  789.  
  790. all_addr_2_r_b  macro   op, code
  791.                 expect  1350
  792.                 op      r4,r5
  793.                 endexpect
  794.                 only_mem_2_r_x op, code
  795.                 op      #4,r5           ; code 8F 04 55 (immediate because no literal mode for 'a')
  796.                 expect  1350
  797.                 op      s^#4,r5         ; invalid addressing mode (no literal mode for 'a')
  798.                 endexpect
  799.                 op      i^#4,r5         ; code 8F 04 55
  800.                 op      #88,r5          ; code 8F 58 55
  801.                 expect  1107
  802.                 op      b^#4,r5         ; invalid attribute
  803.                 endexpect
  804.                 expect  1320
  805.                 op      s^#88,r5        ; out of range 0..63
  806.                 endexpect
  807.                 op      i^#88,r5        ; code 8F 58 55
  808.                 endm
  809.  
  810. all_addr_2_r_w  macro   op, code
  811.                 expect  1350
  812.                 op      r4,r5
  813.                 endexpect
  814.                 only_mem_2_r_x op, code
  815.                 op      #4,r5           ; code 8F 04 00 55 (immediate because no literal mode for 'a')
  816.                 expect  1350
  817.                 op      s^#4,r5         ; invalid addressing mode (no literal mode for 'a')
  818.                 endexpect
  819.                 op      i^#4,r5         ; code 8F 04 00 55
  820.                 op      #444,r5         ; code 8F BC 01 55
  821.                 expect  1107
  822.                 op      b^#4,r5         ; invalid attribute
  823.                 endexpect
  824.                 expect  1320
  825.                 op      s^#444,r5       ; out of range 0..63
  826.                 endexpect
  827.                 op      i^#444,r5       ; code 8F BC 01 55
  828.                 endm
  829.  
  830. all_addr_2_r_l  macro   op, code
  831.                 expect  1350
  832.                 op      r4,r5
  833.                 endexpect
  834.                 only_mem_2_r_x op, code
  835.                 op      #4,r5           ; code 8F 04 00 00 00 55 (immediate because no literal mode for 'a')
  836.                 expect  1350
  837.                 op      s^#4,r5         ; invalid addressing mode (no literal mode for 'a')
  838.                 endexpect
  839.                 op      i^#4,r5         ; code 8F 04 00 00 00 55
  840.                 op      #444444,r5      ; code 8F 1C C8 06 00 55
  841.                 expect  1107
  842.                 op      b^#4,r5         ; invalid attribute
  843.                 endexpect
  844.                 expect  1320
  845.                 op      s^#444444,r5    ; out of range 0..63
  846.                 endexpect
  847.                 op      i^#444444,r5    ; code 8F 1C C8 06 00 55
  848.                 endm
  849.  
  850. all_addr_2_r_q  macro   op, code
  851.                 expect  1350
  852.                 op      r4,r5
  853.                 endexpect
  854.                 only_mem_2_r_x op, code
  855.                 op      #4,r5           ; code 8F 04 00 00 00 00 00 00 00 55 (immediate because no literal mode for 'a')
  856.                 expect  1350
  857.                 op      s^#4,r5         ; invalid addressing mode (no literal mode for 'a')
  858.                 endexpect
  859.                 op      i^#4,r5         ; code 8F 04 00 00 00 00 00 00 00 55
  860.                 op      #44444444,r5    ; code 8F 1B 2B A6 02 00 00 00 00 55
  861.                 expect  1107
  862.                 op      b^#4,r5         ; invalid attribute
  863.                 endexpect
  864.                 expect  1320
  865.                 op      s^#44444444,r5  ; out of range 0..63
  866.                 endexpect
  867.                 op      i^#44444444,r5  ; code 8F 1B 2B A6 02 00 00 00 00 55
  868.                 endm
  869.  
  870. all_addr_2_r_o  macro   op, code
  871.                 expect  1350
  872.                 op      r4,r5
  873.                 endexpect
  874.                 only_mem_2_r_x op, code
  875.                 op      #4,r5           ; code 8F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 (immediate because no literal mode for 'a')
  876.                 expect  1350
  877.                 op      s^#4,r5         ; invalid addressing mode (no literal mode for 'a')
  878.                 endexpect
  879.                 op      i^#4,r5         ; code 8F 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55
  880.                 op      #44444444,r5    ; code 8F 1B 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00 55
  881.                 expect  1107
  882.                 op      b^#4,r5         ; invalid attribute
  883.                 endexpect
  884.                 expect  1320
  885.                 op      s^#44444444,r5  ; out of range 0..63
  886.                 endexpect
  887.                 op      i^#44444444,r5  ; code 8F 1B 2B A6 02 00 00 00 00 00 00 00 00 00 00 00 00 55
  888.                 endm
  889.  
  890. all_addr_2_r_f  macro   op, code
  891.                 expect  1350
  892.                 op      r4,r5
  893.                 endexpect
  894.                 only_mem_2_r_x op, code
  895.                 op      #1.5,r5         ; code 8F C0 40 00 00 55 (immediate because no literal mode for 'a')
  896.                 expect  1350
  897.                 op      s^#1.5,r5       ; invalid addressing mode (no literal mode for 'a')
  898.                 endexpect
  899.                 op      i^#1.5,r5       ; code 8F C0 40 00 00 55
  900.                 op      #1000.5,r5      ; code 8F 7A 45 00 20 55
  901.                 expect  1107
  902.                 op      b^#1.5,r5       ; invalid attribute
  903.                 endexpect
  904.                 expect  1320
  905.                 op      s^#1000.5,r5    ; out of range 0..63
  906.                 endexpect
  907.                 op      i^#1000.5,r5    ; code 8F 7A 45 00 20 55
  908.                 endm
  909.  
  910. all_addr_2_r_d  macro   op, code
  911.                 expect  1350
  912.                 op      r4,r5
  913.                 endexpect
  914.                 only_mem_2_r_x op, code
  915.                 op      #1.5,r5         ; code 8F C0 40 00 00 00 00 00 00 55 (immediate because no literal mode for 'a')
  916.                 expect  1350
  917.                 op      s^#1.5,r5       ; invalid addressing mode (no literal mode for 'a')
  918.                 endexpect
  919.                 op      i^#1.5,r5       ; code 8F C0 40 00 00 00 00 00 00 55
  920.                 op      #1000.5,r5      ; code 8F 7A 45 00 20 00 00 00 00 55
  921.                 expect  1107
  922.                 op      b^#1.5,r5       ; invalid attribute
  923.                 endexpect
  924.                 expect  1320
  925.                 op      s^#1000.5,r5    ; out of range 0..63
  926.                 endexpect
  927.                 op      i^#1000.5,r5    ; code 8F 7A 45 00 20 00 00 00 00 55
  928.                 endm
  929.  
  930. all_addr_2_r_g  macro   op, code
  931.                 expect  1350
  932.                 op      r4,r5
  933.                 endexpect
  934.                 only_mem_2_r_x op, code
  935.                 op      #1.5,r5         ; code 8F 18 40 00 00 00 00 00 00 55 (immediate because no literal mode for 'a')
  936.                 expect  1350
  937.                 op      s^#1.5,r5       ; invalid addressing mode (no literal mode for 'a')
  938.                 endexpect
  939.                 op      i^#1.5,r5       ; code 8F 18 40 00 00 00 00 00 00 55
  940.                 op      #1000.5,r5      ; code 8F AF 40 00 44 00 00 00 00 55
  941.                 expect  1107
  942.                 op      b^#1.5,r5       ; invalid attribute
  943.                 endexpect
  944.                 expect  1320
  945.                 op      s^#1000.5,r5    ; out of range 0..63
  946.                 endexpect
  947.                 op      i^#1000.5,r5    ; code 8F AF 40 00 44 00 00 00 00 55
  948.                 endm
  949.  
  950. all_addr_2_r_h  macro   op, code
  951.                 expect  1350
  952.                 op      r4,r5
  953.                 endexpect
  954.                 only_mem_2_r_x op, code
  955.                 op      #1.5,r5         ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00 55 (immediate because no literal mode for 'a')
  956.                 expect  1350
  957.                 op      s^#1.5,r5       ; invalid addressing mode (no literal mode for 'a')
  958.                 endexpect
  959.                 op      i^#1.5,r5       ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00 55
  960.                 op      #1000.5,r5      ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55
  961.                 expect  1107
  962.                 op      b^#1.5,r5       ; invalid attribute
  963.                 endexpect
  964.                 expect  1320
  965.                 op      s^#1000.5,r5    ; out of range 0..63
  966.                 endexpect
  967.                 op      i^#1000.5,r5    ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55
  968.                 endm
  969.  
  970. only_reg_r_2_r_x macro op, code
  971.                 op      r4,r5,r8                ; code 54 55 58
  972.                 endm
  973.  
  974. only_mem_r_2_r_x macro op, code
  975.                 op      @r4,r5,r8               ; code 64 55 58
  976.                 op      (r4),r5,r8              ; code 64 55 58
  977.                 op      @(r4),r5,r8             ; code B4 00 55 58
  978.                 op      -(r4),r5,r8             ; code 74 55 58
  979.                 op      (r4)+,r5,r8             ; code 84 55 58
  980.                 op      @(r4)+,r5,r8            ; code 94 55 58
  981.                 op      4(r4),r5,r8             ; code A4 04 55 58
  982.                 op      @4(r4),r5,r8            ; code B4 04 55 58
  983.                 op      b^4(r4),r5,r8           ; code A4 04 55 58
  984.                 op      @b^4(r4),r5,r8          ; code B4 04 55 58
  985.                 op      w^4(r4),r5,r8           ; code C4 04 00 55 58
  986.                 op      @w^4(r4),r5,r8          ; code D4 04 00 55 58
  987.                 op      l^4(r4),r5,r8           ; code E4 04 00 00 00 55 58
  988.                 op      @l^4(r4),r5,r8          ; code F4 04 00 00 00 55 58
  989.                 expect  1107,1107
  990.                 op      s^4(r4),r5,r8           ; invalid attribute
  991.                 op      @s^4(r4),r5,r8          ; invalid attribute
  992.                 endexpect
  993.                 op      444(r4),r5,r8           ; code C4 BC 01 55 58
  994.                 op      @444(r4),r5,r8          ; code D4 BC 01 55 58
  995.                 expect  1320,1320
  996.                 op      b^444(r4),r5,r8         ; out of range
  997.                 op      @b^444(r4),r5,r8        ; out of range
  998.                 endexpect
  999.                 op      w^444(r4),r5,r8         ; code C4 BC 01 55 58
  1000.                 op      @w^444(r4),r5,r8        ; code D4 BC 01 55 58
  1001.                 op      l^444(r4),r5,r8         ; code E4 BC 01 00 00 55 58
  1002.                 op      @l^444(r4),r5,r8        ; code F4 BC 01 00 00 55 58
  1003.                 op      444444(r4),r5,r8        ; code E4 1C C8 06 00 55 58
  1004.                 op      @444444(r4),r5,r8       ; code F4 1C C8 06 00 55 58
  1005.                 expect  1320,1320,1320,1320
  1006.                 op      b^444444(r4),r5,r8
  1007.                 op      @b^444444(r4),r5,r8
  1008.                 op      w^444444(r4),r5,r8
  1009.                 op      @w^444444(r4),r5,r8
  1010.                 endexpect
  1011.                 op      l^444444(r4),r5,r8      ; code E4 1C C8 06 00 55 58
  1012.                 op      @l^444444(r4),r5,r8     ; code F4 1C C8 06 00 55 58
  1013.                 op      @#44,r5,r8              ; code 9F 2C 00 00 00 55 58
  1014.                 op      @#444,r5,r8             ; code 9F BC 01 00 00 55 58
  1015.                 op      @#444444,r5,r8          ; code 9F 1C C8 06 00 55 58
  1016.                 op      *+44,r5,r8              ; code AF 29 55 58
  1017.                 op      b^*+44,r5,r8            ; code AF 29 55 58
  1018.                 op      w^*+44,r5,r8            ; code CF 28 00 55 58
  1019.                 op      l^*+44,r5,r8            ; code EF 26 00 00 00 55 58
  1020.                 op      *+444,r5,r8             ; code CF B8 01 55 58
  1021.                 expect 1320
  1022.                 op      b^*+444,r5,r8           ; out of range
  1023.                 endexpect
  1024.                 op      w^*+444,r5,r8           ; code CF B8 01 55 58
  1025.                 op      l^*+444,r5,r8           ; code EF B6 01 00 00 55 58
  1026.                 op      *+444444,r5,r8          ; code EF 16 C8 06 00 55 58
  1027.                 expect  1320,1320
  1028.                 op      b^*+444444,r5,r8        ; out of range
  1029.                 op      w^*+444444,r5,r8        ; out of range
  1030.                 endexpect
  1031.                 op      l^*+444444,r5,r8        ; code EF 16 C8 06 00 55 58
  1032.                 expect  1107
  1033.                 op      s^*+444444,r5,r8        ; invalid attribute
  1034.                 endexpect
  1035.                 expect  1350
  1036.                 op      r4[r6],r5,r8    ; not allowed
  1037.                 endexpect
  1038.                 op      (r4)[r6],r5,r8          ; code 46 64 55 58
  1039.                 op      (r4)+[r6],r5,r8         ; code 46 84 55 58
  1040.                 op      @(r4)+[r6],r5,r8        ; code 46 94 55 58
  1041.                 op      -(r4)[r6],r5,r8         ; code 46 74 55 58
  1042.                 op      @#444[r6],r5,r8         ; code 46 9F BC 01 00 00 55 58
  1043.                 op      @4(r4)[r6],r5,r8        ; code 46 B4 04 55 58
  1044.                 op      *+44[r6],r5,r8          ; code 46 AF 28 55 58
  1045.                 op      *+444[r6],r5,r8         ; code 46 CF B7 01 55 58
  1046.                 op      *+444444[r6],r5,r8      ; code 46 EF 15 C8 06 00 55 58
  1047.                 endm
  1048.  
  1049. all_r_2_r_b     macro   op,code
  1050.                 only_reg_r_2_r_x op, code
  1051.                 only_mem_r_2_r_x op, code
  1052.                 op      #4,r5,r8                ; code 04 55 58
  1053.                 op      s^#4,r5,r8              ; code 04 55 58
  1054.                 op      i^#4,r5,r8              ; code 8F 04 55 58
  1055.                 op      #88,r5,r8               ; code 8F 58 55 58
  1056.                 expect  1107
  1057.                 op      b^#4,r5,r8              ; invalid attribute
  1058.                 endexpect
  1059.                 expect  1320
  1060.                 op      s^#88,r5,r8             ; out of range 0..63
  1061.                 endexpect
  1062.                 op      i^#88,r5,r8             ; code 8F 58 55 58
  1063.                 endm
  1064.  
  1065. all_r_2_r_w     macro   op,code
  1066.                 only_reg_r_2_r_x op, code
  1067.                 only_mem_r_2_r_x op, code
  1068.                 op      #4,r5,r8                ; code 04 55 58
  1069.                 op      s^#4,r5,r8              ; code 04 55 58
  1070.                 op      i^#4,r5,r8              ; code 8F 04 00 55 58
  1071.                 op      #444,r5,r8              ; code 8F BC 01 55 58
  1072.                 expect  1107
  1073.                 op      b^#4,r5,r8              ; invalid attribute
  1074.                 endexpect
  1075.                 expect  1320
  1076.                 op      s^#444,r5,r8            ; out of range 0..63
  1077.                 endexpect
  1078.                 op      i^#444,r5,r8            ; code 8F BC 01 55 58
  1079.                 endm
  1080.  
  1081. all_r_2_r_l     macro   op,code
  1082.                 only_reg_r_2_r_x op, code
  1083.                 only_mem_r_2_r_x op, code
  1084.                 op      #4,r5,r8                ; code 04 55 58
  1085.                 op      s^#4,r5,r8              ; code 04 55 58
  1086.                 op      i^#4,r5,r8              ; code 8F 04 00 00 00 55 58
  1087.                 op      #444444,r5,r8           ; code 8F 1C C8 06 00 55 58
  1088.                 expect  1107
  1089.                 op      b^#4,r5,r8              ; invalid attribute
  1090.                 endexpect
  1091.                 expect  1320
  1092.                 op      s^#444444,r5,r8         ; out of range 0..63
  1093.                 endexpect
  1094.                 op      i^#444444,r5,r8         ; code 8F 1C C8 06 00 55 58
  1095.                 endm
  1096.  
  1097. all_r_2_r_f     macro   op,code
  1098.                 only_reg_r_2_r_x op, code
  1099.                 only_mem_r_2_r_x op, code
  1100.                 op      #1.5,r5,r8              ; code 0C 55 58
  1101.                 op      s^#1.5,r5,r8            ; code 0C 55 58
  1102.                 op      i^#1.5,r5,r8            ; code 8F C0 40 00 00 55 58
  1103.                 op      #1000.5,r5,r8           ; code 8F 7A 45 00 20 55 58
  1104.                 expect  1107
  1105.                 op      b^#1.5,r5,r8            ; invalid attribute
  1106.                 endexpect
  1107.                 expect  1320
  1108.                 op      s^#1000.5,r5,r8         ; out of range 0.5 .. 120
  1109.                 endexpect
  1110.                 op      i^#1000.5,r5,r8         ; code 8F 7A 45 00 20 55 58
  1111.                 endm
  1112.  
  1113. all_r_2_r_d     macro   op,code
  1114.                 only_reg_r_2_r_x op, code
  1115.                 only_mem_r_2_r_x op, code
  1116.                 op      #1.5,r5,r8              ; code 0C 55 58
  1117.                 op      s^#1.5,r5,r8            ; code 0C 55 58
  1118.                 op      i^#1.5,r5,r8            ; code 8F C0 40 00 00 00 00 00 00 55 58
  1119.                 op      #1000.5,r5,r8           ; code 8F 7A 45 00 20 00 00 00 00 55 58
  1120.                 expect  1107
  1121.                 op      b^#1.5,r5,r8            ; invalid attribute
  1122.                 endexpect
  1123.                 expect  1320
  1124.                 op      s^#1000.5,r5,r8         ; out of range 0.5 .. 120
  1125.                 endexpect
  1126.                 op      i^#1000.5,r5,r8         ; code 8F 7A 45 00 20 00 00 00 00 55 58
  1127.                 endm
  1128.  
  1129. all_r_2_r_g     macro   op,code
  1130.                 only_reg_r_2_r_x op, code
  1131.                 only_mem_r_2_r_x op, code
  1132.                 op      #1.5,r5,r8              ; code 0C 55 58
  1133.                 op      s^#1.5,r5,r8            ; code 0C 55 58
  1134.                 op      i^#1.5,r5,r8            ; code 8F 18 40 00 00 00 00 00 00 55 58
  1135.                 op      #1000.5,r5,r8           ; code 8F AF 40 00 44 00 00 00 00 55 58
  1136.                 expect  1107
  1137.                 op      b^#1.5,r5,r8            ; invalid attribute
  1138.                 endexpect
  1139.                 expect  1320
  1140.                 op      s^#1000.5,r5,r8         ; out of range 0.5 .. 120
  1141.                 endexpect
  1142.                 op      i^#1000.5,r5,r8         ; code 8F AF 40 00 44 00 00 00 00 55 58
  1143.                 endm
  1144.  
  1145. all_r_2_r_h     macro   op,code
  1146.                 only_reg_r_2_r_x op, code
  1147.                 only_mem_r_2_r_x op, code
  1148.                 op      #1.5,r5,r8              ; code 0C 55 58
  1149.                 op      s^#1.5,r5,r8            ; code 0C 55 58
  1150.                 op      i^#1.5,r5,r8            ; code 8F 01 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00 55 58
  1151.                 op      #1000.5,r5,r8           ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55 58
  1152.                 expect  1107
  1153.                 op      b^#1.5,r5,r8            ; invalid attribute
  1154.                 endexpect
  1155.                 expect  1320
  1156.                 op      s^#1000.5,r5,r8         ; out of range 0.5 .. 120
  1157.                 endexpect
  1158.                 op      i^#1000.5,r5,r8         ; code 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 55 58
  1159.                 endm
  1160.  
  1161. bitfield_first  macro   op, code
  1162.                 ; both pos and size are literals
  1163.                 op      #10,#20,@r4,r5          ; code 0A 14 64 55
  1164.                 ; pos is 32 bits, so four bytes as non-literal
  1165.                 op      i^#10,#20,@r4,r5        ; code 8F 0A 00 00 00 14 64 55
  1166.                 ; size is 8 bits, so one byte as non-literal
  1167.                 op      #10,i^#20,@r4,r5        ; code 0A 8F 14 64 55
  1168.                 ; pos is too large for literal
  1169.                 op      #1000,#20,@r4,r5        ; code 8F F8 03 00 00 14 64 55
  1170.                 expect  2180,2180
  1171.                 ; size may never be > 32, neither for memory...
  1172.                 op      #10,#33,@r4,r5
  1173.                 ; ...nor for register
  1174.                 op      #10,#33,r4,r5
  1175.                 endexpect
  1176.                 ; zero-length bit field in register may have arbitrary position
  1177.                 op      #33,#0,r4,r5            ; code 21 00 54 55
  1178.                 expect  2180
  1179.                 ; if non-zero size, position in rregister must be < 32
  1180.                 op      #32,#1,r4,r5
  1181.                 endexpect
  1182.                 endm
  1183.  
  1184. bitfield_last   macro   op, code
  1185.                 ; both pos and size are literals
  1186.                 op      r5,#10,#20,@r4          ; code 55 0A 14 64
  1187.                 ; pos is 32 bits, so four bytes as non-literal
  1188.                 op      r5,i^#10,#20,@r4        ; code 55 8F 0A 00 00 00 14 64
  1189.                 ; size is 8 bits, so one byte as non-literal
  1190.                 op      r5,#10,i^#20,@r4        ; code 55 0A 8F 14 64
  1191.                 ; pos is too large for literal
  1192.                 op      r5,#1000,#20,@r4        ; code 55 8F F8 03 00 00 14 64
  1193.                 expect  2180,2180
  1194.                 ; size may never be > 32, neither for memory...
  1195.                 op      r5,#10,#33,@r4
  1196.                 ; ...nor for register
  1197.                 op      r5,#10,#33,r4
  1198.                 endexpect
  1199.                 ; zero-length bit field in register may have arbitrary position
  1200.                 op      r5,#33,#0,r4            ; code 55 21 00 54
  1201.                 expect  2180
  1202.                 ; if non-zero size, position in register must be < 32
  1203.                 op      r5,#32,#1,r4
  1204.                 endexpect
  1205.                 endm
  1206.  
  1207. ;=================================================
  1208.  
  1209.                 all_2_r_w adawi, 58
  1210.  
  1211. ;-------------------------------------------------
  1212.  
  1213.                 all_2_r_b addb, 80
  1214.                 all_2_r_w addw, A0
  1215.                 all_2_r_l addl, C0
  1216.  
  1217.                 all_2_r_b addb2, 80
  1218.                 all_2_r_w addw2, A0
  1219.                 all_2_r_l addl2, C0
  1220.                 expect 1110
  1221.                 addl2   r4,r5,r6
  1222.                 endexpect
  1223.  
  1224.                 all_r_2_r_b addb, 81
  1225.                 all_r_2_r_w addw, A1
  1226.                 all_r_2_r_l addl, C1
  1227.  
  1228.                 all_r_2_r_b addb3, 81
  1229.                 all_r_2_r_w addw3, A1
  1230.                 all_r_2_r_l addl3, C1
  1231.                 expect 1110
  1232.                 addl3   r4,r5
  1233.                 endexpect
  1234.  
  1235.                 addl    (r3)[r4],r1     ; C0 44 63 51
  1236.                 addl2   (r3)[r4],r1     ; C0 44 63 51
  1237.  
  1238.                 addl    (r3)[r4],737(r2),r1 ; C1 44 63 C2 E1 02 51
  1239.                 addl3   (r3)[r4],737(r2),r1 ; C1 44 63 C2 E1 02 51
  1240.  
  1241. ;-------------------------------------------------
  1242.  
  1243.                 all_2_r_f addf, 40
  1244.                 all_2_r_d addd, 60
  1245.                 all_2_r_g addg, fd 40
  1246.                 all_2_r_h addh, fd 60
  1247.  
  1248.                 all_2_r_f addf2, 40
  1249.                 all_2_r_d addd2, 60
  1250.                 all_2_r_g addg2, fd 40
  1251.                 all_2_r_h addh2, fd 60
  1252.                 expect 1110
  1253.                 addf2   r4,r5,r6
  1254.                 endexpect
  1255.  
  1256.                 all_r_2_r_f addf, 41
  1257.                 all_r_2_r_d addd, 61
  1258.                 all_r_2_r_g addg, fd 41
  1259.                 all_r_2_r_h addh, fd 61
  1260.  
  1261.                 all_r_2_r_f addf3, 41
  1262.                 all_r_2_r_d addd3, 61
  1263.                 all_r_2_r_g addg3, fd 41
  1264.                 all_r_2_r_h addh3, fd 61
  1265.                 expect 1110
  1266.                 addl3   r4,r5
  1267.                 endexpect
  1268.  
  1269. ;-------------------------------------------------
  1270.  
  1271.                 all_2_r_l adwc, D8
  1272.  
  1273. ;-------------------------------------------------
  1274.  
  1275.                 all_r_2_r_b ashl, 78
  1276.                 all_r_2_r_b ashq, 79
  1277.  
  1278. ;-------------------------------------------------
  1279.  
  1280.                 all_2_r_b bicb, 8A
  1281.                 all_2_r_w bicw, AA
  1282.                 all_2_r_l bicl, CA
  1283.  
  1284.                 all_2_r_b bicb2, 8A
  1285.                 all_2_r_w bicw2, AA
  1286.                 all_2_r_l bicl2, CA
  1287.                 expect 1110
  1288.                 bicl2   r4,r5,r6
  1289.                 endexpect
  1290.  
  1291.                 all_r_2_r_b bicb, 8B
  1292.                 all_r_2_r_w bicw, AB
  1293.                 all_r_2_r_l bicl, CB
  1294.  
  1295.                 all_r_2_r_b bicb3, 8B
  1296.                 all_r_2_r_w bicw3, AB
  1297.                 all_r_2_r_l bicl3, CB
  1298.                 expect 1110
  1299.                 bicl3   r4,r5
  1300.                 endexpect
  1301.  
  1302.                 bicl    (r3)[r4],r1     ; CA 44 63 51
  1303.                 bicl2   (r3)[r4],r1     ; CA 44 63 51
  1304.  
  1305.                 bicl    (r3)[r4],737(r2),r1 ; CB 44 63 C2 E1 02 51
  1306.                 bicl3   (r3)[r4],737(r2),r1 ; CB 44 63 C2 E1 02 51
  1307.  
  1308. ;-------------------------------------------------
  1309.  
  1310.                 all_w   bicpsw, b9
  1311.  
  1312. ;-------------------------------------------------
  1313.  
  1314.                 all_2_r_b bisb, 88
  1315.                 all_2_r_w bisw, A8
  1316.                 all_2_r_l bisl, C8
  1317.  
  1318.                 all_2_r_b bisb2, 88
  1319.                 all_2_r_w bisw2, A8
  1320.                 all_2_r_l bisl2, C8
  1321.                 expect 1110
  1322.                 bisl2   r4,r5,r6
  1323.                 endexpect
  1324.  
  1325.                 all_r_2_r_b bisb, 89
  1326.                 all_r_2_r_w bisw, A9
  1327.                 all_r_2_r_l bisl, C9
  1328.  
  1329.                 all_r_2_r_b bisb3, 89
  1330.                 all_r_2_r_w bisw3, A9
  1331.                 all_r_2_r_l bisl3, C9
  1332.                 expect 1110
  1333.                 bisl3   r4,r5
  1334.                 endexpect
  1335.  
  1336.                 bisl    (r3)[r4],r1     ; C8 44 63 51
  1337.                 bisl2   (r3)[r4],r1     ; C8 44 63 51
  1338.  
  1339.                 bisl    (r3)[r4],737(r2),r1 ; C9 44 63 C2 E1 02 51
  1340.                 bisl3   (r3)[r4],737(r2),r1 ; C9 44 63 C2 E1 02 51
  1341.  
  1342. ;-------------------------------------------------
  1343.  
  1344.                 all_w   bispsw, b8
  1345.  
  1346. ;-------------------------------------------------
  1347.  
  1348.                 all_2_r_b bitb, 93
  1349.                 all_2_r_w bitw, b3
  1350.                 all_2_r_l bitl, d3
  1351.                 bitb    #44,#88         ; 93 2C 8F 58
  1352.                 bitw    #444,#888       ; B3 8F BC 01 8F 78 03
  1353.                 bitl    #444444,#888888 ; D3 8F 1C C8 06 00 8F 38 90 0D 00
  1354.  
  1355. ;-------------------------------------------------
  1356.  
  1357.                 bpt                     ; 03
  1358.  
  1359. ;-------------------------------------------------
  1360.  
  1361.                 bugw                    ; FF FE
  1362.                 bugl                    ; FF FD
  1363.  
  1364. ;-------------------------------------------------
  1365.  
  1366.                 callg   @r5,@#0x12345678        ; FA 65 9F 78 56 34 12
  1367.  
  1368. ;-------------------------------------------------
  1369.  
  1370.                 calls   #3,@#0x87654321         ; FB 03 9F 21 43 65 87
  1371.  
  1372. ;-------------------------------------------------
  1373.  
  1374.                 chmk    #1234                   ; BC 8F D2 04
  1375.                 chme    #0                      ; BD 00
  1376.                 chms    r5                      ; BE 55
  1377.                 chmu    @r8                     ; BF 68
  1378.  
  1379. ;-------------------------------------------------
  1380.  
  1381.                 all_no_imm_b clrb, 94
  1382.                 all_no_imm_w clrw, b4
  1383.                 all_no_imm_l clrl, d4
  1384.                 all_no_imm_q clrq, 7c
  1385.                 all_no_imm_o clro, fd 7c
  1386.  
  1387. ;-------------------------------------------------
  1388.  
  1389.                 all_no_imm_f clrf, d4
  1390.                 all_no_imm_d clrd, 7c
  1391.                 all_no_imm_g clrg, 7c
  1392.                 all_no_imm_h clrh, fd 7c
  1393.  
  1394. ;-------------------------------------------------
  1395.  
  1396.                 all_2_r_b cmpb, 91
  1397.                 all_2_r_w cmpw, b1
  1398.                 all_2_r_l cmpl, d1
  1399.                 cmpb    #44,#88         ; 91 2C 8F 58
  1400.                 cmpw    #444,#888       ; B1 8F BC 01 8F 78 03
  1401.                 cmpl    #444444,#888888 ; D1 8F 1C C8 06 00 8F 38 90 0D 00
  1402.  
  1403. ;-------------------------------------------------
  1404.  
  1405.                 all_2_r_f cmpf, 51
  1406.                 all_2_r_d cmpd, 71
  1407.                 all_2_r_g cmpg, fd 51
  1408.                 all_2_r_h cmph, fd 71
  1409.                 cmpf    #1.5,#1000.5    ; 51 0C 8F 7A 45 00 20
  1410.  
  1411. ;-------------------------------------------------
  1412.  
  1413.                 bitfield_first cmpv, ec
  1414.                 bitfield_first cmpzv, ed
  1415.  
  1416. ;-------------------------------------------------
  1417.  
  1418.                 all_2_r_b cvtbw, 99
  1419.                 all_2_r_b cvtbl, 98
  1420.                 all_2_r_w cvtwb, 33
  1421.                 all_2_r_w cvtwl, 32
  1422.                 all_2_r_l cvtlb, f6
  1423.                 all_2_r_l cvtlw, f7
  1424.  
  1425. ;-------------------------------------------------
  1426.  
  1427.                 all_2_r_f cvtfb, 48
  1428.                 all_2_r_f cvtfw, 49
  1429.                 all_2_r_f cvtfl, 4a
  1430.                 all_2_r_f cvtrfl, 4b
  1431.                 all_2_r_b cvtbf, 4c
  1432.                 all_2_r_w cvtwf, 4d
  1433.                 all_2_r_l cvtlf, 4e
  1434.                 all_2_r_f cvtfd, 56
  1435.                 all_2_r_d cvtdb, 68
  1436.                 all_2_r_d cvtdw, 69
  1437.                 all_2_r_d cvtdl, 6a
  1438.                 all_2_r_d cvtrdl, 6b
  1439.                 all_2_r_b cvtbd, 6c
  1440.                 all_2_r_w cvtwd, 6d
  1441.                 all_2_r_l cvtld, 6e
  1442.                 all_2_r_d cvtdf, 76
  1443.                 all_2_r_d cvtdh, fd 32
  1444.                 all_2_r_g cvtgf, fd 33
  1445.                 all_2_r_g cvtgb, fd 48
  1446.                 all_2_r_g cvtgw, fd 49
  1447.                 all_2_r_g cvtgl, fd 4a
  1448.                 all_2_r_g cvtrgl, fd 4b
  1449.                 all_2_r_b cvtbg, fd 4c
  1450.                 all_2_r_w cvtwg, fd 4d
  1451.                 all_2_r_l cvtlg, fd 4e
  1452.                 all_2_r_g cvtgh, fd 56
  1453.                 all_2_r_h cvthb, fd 68
  1454.                 all_2_r_h cvthw, fd 69
  1455.                 all_2_r_h cvthl, fd 6a
  1456.                 all_2_r_d cvtrhl, fd 6b
  1457.                 all_2_r_b cvtbh, fd 6c
  1458.                 all_2_r_w cvtwh, fd 6d
  1459.                 all_2_r_l cvtlh, fd 6e
  1460.                 all_2_r_h cvthg, fd 76
  1461.                 all_2_r_f cvtfh, fd 98
  1462.                 all_2_r_f cvtfg, fd 99
  1463.                 all_2_r_h cvthf, fd f6
  1464.                 all_2_r_h cvthd, fd f7
  1465.  
  1466. ;-------------------------------------------------
  1467.  
  1468.                 all_no_imm_b decb, 97
  1469.                 all_no_imm_w decw, b7
  1470.                 all_no_imm_l decl, d7
  1471.  
  1472. ;-------------------------------------------------
  1473.  
  1474.                 all_2_r_b divb, 86
  1475.                 all_2_r_w divw, A6
  1476.                 all_2_r_l divl, C6
  1477.  
  1478.                 all_2_r_b divb2, 86
  1479.                 all_2_r_w divw2, A6
  1480.                 all_2_r_l divl2, C6
  1481.  
  1482.                 all_r_2_r_b divb, 87
  1483.                 all_r_2_r_w divw, A7
  1484.                 all_r_2_r_l divl, C7
  1485.  
  1486.                 all_r_2_r_b divb3, 87
  1487.                 all_r_2_r_w divw3, A7
  1488.                 all_r_2_r_l divl3, C7
  1489.                 expect 1110
  1490.                 divl3   r4,r5
  1491.                 endexpect
  1492.  
  1493.                 divl    (r3)[r4],r1     ; C6 44 63 51
  1494.                 divl2   (r3)[r4],r1     ; C6 44 63 51
  1495.  
  1496.                 divl    (r3)[r4],737(r2),r1 ; C7 44 63 C2 E1 02 51
  1497.                 divl3   (r3)[r4],737(r2),r1 ; C7 44 63 C2 E1 02 51
  1498.  
  1499. ;-------------------------------------------------
  1500.  
  1501.                 all_2_r_f divf, 46
  1502.                 all_2_r_d divd, 66
  1503.                 all_2_r_g divg, fd 46
  1504.                 all_2_r_h divh, fd 66
  1505.  
  1506.                 all_2_r_f divf2, 46
  1507.                 all_2_r_d divd2, 66
  1508.                 all_2_r_g divg2, fd 46
  1509.                 all_2_r_h divh2, fd 66
  1510.                 expect 1110
  1511.                 divf2   r4,r5,r6
  1512.                 endexpect
  1513.  
  1514.                 all_r_2_r_f divf, 47
  1515.                 all_r_2_r_d divd, 67
  1516.                 all_r_2_r_g divg, fd 47
  1517.                 all_r_2_r_h divh, fd 67
  1518.  
  1519.                 all_r_2_r_f divf3, 47
  1520.                 all_r_2_r_d divd3, 67
  1521.                 all_r_2_r_g divg3, fd 47
  1522.                 all_r_2_r_h divh3, fd 67
  1523.                 expect 1110
  1524.                 divf3   r4,r5
  1525.                 endexpect
  1526.  
  1527. ;-------------------------------------------------
  1528.  
  1529.                 emodf   r5,#0x22,#1.5,r4,r6     ; 54 55 22 0C 54 56
  1530.                 emodd   r5,#0xaa,#1000.5,r4,r6  ; 74 55 8F AA 8F 7A 45 00 20 00 00 00 00 54 56
  1531.                 emodg   r5,#0xaa,#1000.5,r4,r6  ; FD 54 55 8F AA 00 8F AF 40 00 44 00 00 00 00 54 56
  1532.                 emodh   r5,#0xaa,#1000.5,r4,r6  ; FD 74 55 8F AA 00 8F 0A 40 40 F4 00 00 00 00 00 00 00 00 00 00 00 00 54 56
  1533.  
  1534. ;-------------------------------------------------
  1535.  
  1536.                 bitfield_first extv, ee
  1537.                 bitfield_first extzv, ef
  1538.  
  1539. ;-------------------------------------------------
  1540.  
  1541.                 bitfield_first ffc, eb
  1542.                 bitfield_first ffs, ea
  1543.  
  1544. ;-------------------------------------------------
  1545.  
  1546.                 halt                    ; 00
  1547.  
  1548. ;-------------------------------------------------
  1549.  
  1550.                 all_no_imm_b incb, 96
  1551.                 all_no_imm_w incw, b6
  1552.                 all_no_imm_l incl, d6
  1553.  
  1554. ;-------------------------------------------------
  1555.  
  1556.                 index   r11, #0x01, #0x0f, #0x19, #0x00, r0 ; 0A 5B 01 0F 19 00 50
  1557.  
  1558. ;-------------------------------------------------
  1559.  
  1560.                 insqhi  444(r5),888(r4) ; 5C C5 BC 01 C4 78 03
  1561.                 insqti  444(r5),888(r4) ; 5D C5 BC 01 C4 78 03
  1562.                 insque  444(r5),888(r4) ; 0E C5 BC 01 C4 78 03
  1563.                 expect  1350
  1564.                 insque  r5,888(r4)
  1565.                 endexpect
  1566.  
  1567. ;-------------------------------------------------
  1568.  
  1569.                 bitfield_last insv, f0
  1570.  
  1571. ;-------------------------------------------------
  1572.  
  1573.                 all_addr_b jmp, 17
  1574.  
  1575. ;-------------------------------------------------
  1576.  
  1577.                 all_addr_b jsb, 16
  1578.  
  1579. ;-------------------------------------------------
  1580.  
  1581.                 ldpctx                  ; 06
  1582.  
  1583. ;-------------------------------------------------
  1584.  
  1585.                 all_2_r_b mcomb, 92
  1586.                 all_2_r_w mcomw, b2
  1587.                 all_2_r_l mcoml, d2
  1588.  
  1589. ;-------------------------------------------------
  1590.  
  1591.                 all_2_r_b mnegb, 8e
  1592.                 all_2_r_w mnegw, ae
  1593.                 all_2_r_l mnegl, ce
  1594.  
  1595. ;-------------------------------------------------
  1596.  
  1597.                 all_2_r_f mnegf, 52
  1598.                 all_2_r_d mnegd, 72
  1599.                 all_2_r_g mnegg, fd 52
  1600.                 all_2_r_h mnegh, fd 72
  1601.  
  1602. ;-------------------------------------------------
  1603.  
  1604.                 all_2_r_b movb, 90
  1605.                 all_2_r_w movw, b0
  1606.                 all_2_r_l movl, d0
  1607.                 all_2_r_q movq, 7d
  1608.                 all_2_r_o movo, fd 7d
  1609.  
  1610. ;-------------------------------------------------
  1611.  
  1612.                 all_2_r_f movf, 50
  1613.                 all_2_r_d movd, 70
  1614.                 all_2_r_g movg, fd 50
  1615.                 all_2_r_h movh, fd 70
  1616.  
  1617. ;-------------------------------------------------
  1618.  
  1619.                 all_addr_2_r_b movab, 9e
  1620.                 all_addr_2_r_w movaw, 3e
  1621.                 all_addr_2_r_l moval, de
  1622.                 all_addr_2_r_q movaq, 7e
  1623.                 all_addr_2_r_o movao, fd 7e
  1624.  
  1625. ;-------------------------------------------------
  1626.  
  1627.                 all_addr_2_r_f movaf, de
  1628.                 all_addr_2_r_d movad, 7e
  1629.                 all_addr_2_r_g movag, 7e
  1630.                 all_addr_2_r_h movah, fd 7e
  1631.  
  1632. ;-------------------------------------------------
  1633.  
  1634.                 all_no_imm_l movpsl, dc
  1635.  
  1636. ;-------------------------------------------------
  1637.  
  1638.                 all_2_r_b movzbw, 9b
  1639.                 all_2_r_b movzbl, 9a
  1640.                 all_2_r_w movzwl, 3c
  1641.  
  1642. ;-------------------------------------------------
  1643.  
  1644.                 mtpr    r4,#6           ; DA 54 06
  1645.                 mfpr    #6,(r7)         ; DB 06 67
  1646.  
  1647. ;-------------------------------------------------
  1648.  
  1649.                 all_2_r_b mulb, 84
  1650.                 all_2_r_w mulw, A4
  1651.                 all_2_r_l mull, C4
  1652.  
  1653.                 all_2_r_b mulb2, 84
  1654.                 all_2_r_w mulw2, A4
  1655.                 all_2_r_l mull2, C4
  1656.                 expect 1110
  1657.                 mull2   r4,r5,r6
  1658.                 endexpect
  1659.  
  1660.                 all_r_2_r_b mulb, 85
  1661.                 all_r_2_r_w mulw, A5
  1662.                 all_r_2_r_l mull, C5
  1663.  
  1664.                 all_r_2_r_b mulb3, 85
  1665.                 all_r_2_r_w mulw3, A5
  1666.                 all_r_2_r_l mull3, C5
  1667.                 expect 1110
  1668.                 mull3   r4,r5
  1669.                 endexpect
  1670.  
  1671.                 mull    (r3)[r4],r1     ; C4 44 63 51
  1672.                 mull2   (r3)[r4],r1     ; C4 44 63 51
  1673.  
  1674.                 mull    (r3)[r4],737(r2),r1 ; C5 44 63 C2 E1 02 51
  1675.                 mull3   (r3)[r4],737(r2),r1 ; C5 44 63 C2 E1 02 51
  1676.  
  1677. ;-------------------------------------------------
  1678.  
  1679.                 all_2_r_f mulf, 44
  1680.                 all_2_r_d muld, 64
  1681.                 all_2_r_g mulg, fd 44
  1682.                 all_2_r_h mulh, fd 64
  1683.  
  1684.                 all_2_r_f mulf2, 44
  1685.                 all_2_r_d muld2, 64
  1686.                 all_2_r_g mulg2, fd 44
  1687.                 all_2_r_h mulh2, fd 64
  1688.                
  1689.                 expect 1110
  1690.                 mulf2   r4,r5,r6
  1691.                 endexpect
  1692.  
  1693.                 all_r_2_r_f mulf, 45
  1694.                 all_r_2_r_d muld, 65
  1695.                 all_r_2_r_g mulg, fd 45
  1696.                 all_r_2_r_h mulh, fd 65
  1697.  
  1698.                 all_r_2_r_f mulf3, 45
  1699.                 all_r_2_r_d muld3, 65
  1700.                 all_r_2_r_g mulg3, fd 45
  1701.                 all_r_2_r_h mulh3, fd 65
  1702.                 expect 1110
  1703.                 mulf3   r4,r5
  1704.                 endexpect
  1705.  
  1706. ;-------------------------------------------------
  1707.  
  1708.                 nop                     ; 01
  1709.  
  1710. ;-------------------------------------------------
  1711.  
  1712.                 polyf   r5,#3,@r6               ; 55 55 03 66
  1713.                 polyd   r5,#17,@r6              ; 75 55 11 66
  1714.                 polyg   r5,#100,@r6             ; FD 55 55 8F 64 00 66
  1715.                 polyh   r5,#101,@#0x12345678    ; FD 75 55 8F 65 00 9F 78 56 34 12
  1716.  
  1717. ;-------------------------------------------------
  1718.  
  1719.                 all_w popr, ba
  1720.  
  1721. ;-------------------------------------------------
  1722.  
  1723.                 prober  #1,#444,@r5             ; 0C 01 8F BC 01 65
  1724.                 probew  #1,#444,@r5             ; 0D 01 8F BC 01 65
  1725.  
  1726. ;-------------------------------------------------
  1727.  
  1728.                 all_addr_b pushab, 9f
  1729.                 all_addr_w pushaw, 3f
  1730.                 all_addr_l pushal, df
  1731.                 all_addr_q pushaq, 7f
  1732.                 all_addr_o pushao, fd 7f
  1733.  
  1734. ;-------------------------------------------------
  1735.  
  1736.                 all_addr_f pushaf, df
  1737.                 all_addr_d pushad, 7f
  1738.                 all_addr_g pushag, 7f
  1739.                 all_addr_h pushah, fd 7f
  1740.  
  1741. ;-------------------------------------------------
  1742.  
  1743.                 all_l pushl, dd
  1744.  
  1745. ;-------------------------------------------------
  1746.  
  1747.                 all_w pushr, bb
  1748.  
  1749. ;-------------------------------------------------
  1750.  
  1751.                 rei             ; 02
  1752.  
  1753. ;-------------------------------------------------
  1754.  
  1755.                 remqhi 444(r4),r5       ; 5E C4 BC 01 55
  1756.                 remqti 444(r4),r5       ; 5F C4 BC 01 55
  1757.                 remque 444(r4),r5       ; 0F C4 BC 01 55
  1758.  
  1759. ;-------------------------------------------------
  1760.  
  1761.                 ret             ; 04
  1762.  
  1763. ;-------------------------------------------------
  1764.  
  1765.                 all_r_2_r_b rotl, 9c
  1766.  
  1767. ;-------------------------------------------------
  1768.  
  1769.                 rsb             ; 05
  1770.  
  1771. ;-------------------------------------------------
  1772.  
  1773.                 all_2_r_l sbwc, D9
  1774.  
  1775. ;-------------------------------------------------
  1776.  
  1777.                 all_2_r_b subb, 82
  1778.                 all_2_r_w subw, A2
  1779.                 all_2_r_l subl, C2
  1780.  
  1781.                 all_2_r_b subb2, 82
  1782.                 all_2_r_w subw2, A2
  1783.                 all_2_r_l subl2, C2
  1784.                 expect 1110
  1785.                 subl2   r4,r5,r6
  1786.                 endexpect
  1787.  
  1788.                 all_r_2_r_b subb, 83
  1789.                 all_r_2_r_w subw, A3
  1790.                 all_r_2_r_l subl, C3
  1791.  
  1792.                 all_r_2_r_b subb3, 83
  1793.                 all_r_2_r_w subw3, A3
  1794.                 all_r_2_r_l subl3, C3
  1795.                 expect 1110
  1796.                 subl3   r4,r5
  1797.                 endexpect
  1798.  
  1799.                 subl    (r3)[r4],r1     ; C2 44 63 51
  1800.                 subl2   (r3)[r4],r1     ; C2 44 63 51
  1801.  
  1802.                 subl    (r3)[r4],737(r2),r1 ; C3 44 63 C2 E1 02 51
  1803.                 subl3   (r3)[r4],737(r2),r1 ; C3 44 63 C2 E1 02 51
  1804.  
  1805. ;-------------------------------------------------
  1806.  
  1807.                 all_2_r_f subf, 42
  1808.                 all_2_r_d subd, 62
  1809.                 all_2_r_g subg, fd 42
  1810.                 all_2_r_h subh, fd 62
  1811.  
  1812.                 all_2_r_f subf2, 42
  1813.                 all_2_r_d subd2, 62
  1814.                 all_2_r_g subg2, fd 42
  1815.                 all_2_r_h subh2, fd 62
  1816.                 expect 1110
  1817.                 subf2   r4,r5,r6
  1818.                 endexpect
  1819.  
  1820.                 all_r_2_r_f subf, 43
  1821.                 all_r_2_r_d subd, 63
  1822.                 all_r_2_r_g subg, fd 43
  1823.                 all_r_2_r_h subh, fd 63
  1824.  
  1825.                 all_r_2_r_f subf3, 43
  1826.                 all_r_2_r_d subd3, 63
  1827.                 all_r_2_r_g subg3, fd 43
  1828.                 all_r_2_r_h subh3, fd 63
  1829.                 expect 1110
  1830.                 subf3   r4,r5
  1831.                 endexpect
  1832.  
  1833. ;-------------------------------------------------
  1834.  
  1835.                 svpctx                  ; 07
  1836.  
  1837. ;-------------------------------------------------
  1838.  
  1839.                 all_b tstb, 95
  1840.                 all_w tstw, b5
  1841.                 all_l tstl, d5
  1842.  
  1843. ;-------------------------------------------------
  1844.  
  1845.                 all_f tstf, 53
  1846.                 all_d tstd, 73
  1847.                 all_g tstg, fd 53
  1848.                 all_h tsth, fd 73
  1849.  
  1850. ;-------------------------------------------------
  1851.  
  1852.                 xfc             ; FC
  1853.  
  1854. ;-------------------------------------------------
  1855.  
  1856.                 all_2_r_b xorb, 8C
  1857.                 all_2_r_w xorw, AC
  1858.                 all_2_r_l xorl, CC
  1859.  
  1860.                 all_2_r_b xorb2, 8C
  1861.                 all_2_r_w xorw2, AC
  1862.                 all_2_r_l xorl2, CC
  1863.                 expect 1110
  1864.                 xorl2   r4,r5,r6
  1865.                 endexpect
  1866.  
  1867.                 all_r_2_r_b xorb, 8D
  1868.                 all_r_2_r_w xorw, AD
  1869.                 all_r_2_r_l xorl, CD
  1870.  
  1871.                 all_r_2_r_b xorb3, 8D
  1872.                 all_r_2_r_w xorw3, AD
  1873.                 all_r_2_r_l xorl3, CD
  1874.                 expect 1110
  1875.                 xorl3   r4,r5
  1876.                 endexpect
  1877.  
  1878.                 xorl    (r3)[r4],r1     ; CC 44 63 51
  1879.                 xorl2   (r3)[r4],r1     ; CC 44 63 51
  1880.  
  1881.                 xorl    (r3)[r4],737(r2),r1 ; CD 44 63 C2 E1 02 51
  1882.                 xorl3   (r3)[r4],737(r2),r1 ; CD 44 63 C2 E1 02 51
  1883.  
  1884. ;-------------------------------------------------
  1885.  
  1886.                 cmpc3   r4,@r5,@r7              ; 29 54 65 67
  1887.                 cmpc    r4,@r5,@r7              ; 29 54 65 67
  1888.                 cmpc5   r4,@r5,#' ',r6,@r7      ; 2D 54 65 20 56 67
  1889.                 cmpc    r4,@r5,#' ',r6,@r7      ; 2D 54 65 20 56 67
  1890.                 expect  1110
  1891.                 cmpc    r4,@r5,r6,@r7
  1892.                 endexpect
  1893.                 locc    #' ',r4,@r5             ; 3A 20 54 65
  1894.                 matchc  r4,@r5,r6,@r7           ; 39 54 65 56 67
  1895.                 movc3   r4,@r5,@r7              ; 28 54 65 67
  1896.                 movc    r4,@r5,@r7              ; 28 54 65 67
  1897.                 movc5   r4,@r5,#' ',r6,@r7      ; 2C 54 65 20 56 67
  1898.                 movc    r4,@r5,#' ',r6,@r7      ; 2C 54 65 20 56 67
  1899.                 movtc   r4,@r5,#' ',@r8,r6,@r7  ; 2E 54 65 20 68 56 67
  1900.                 movtuc  r4,@r5,#' ',@r8,r6,@r7  ; 2F 54 65 20 68 56 67
  1901.                 scanc   r4,@r5,@r8,#0xaa        ; 2A 54 65 68 8F AA
  1902.                 skpc    #' ',r4,@r5             ; 3B 20 54 65
  1903.                 spanc   r4,@r5,@r8,#0xaa        ; 2B 54 65 68 8F AA
  1904.  
  1905. ;-------------------------------------------------
  1906.  
  1907.                 crc     200(r4),#0xffffffff,#512,@r5 ; 0B C4 C8 00 8F FF FF FF FF 8F 00 02 65
  1908.  
  1909. ;-------------------------------------------------
  1910.  
  1911.                 addp4   r4,@r5,r6,@r7           ; 20 54 65 56 67
  1912.                 addp    r4,@r5,r6,@r7           ; 20 54 65 56 67
  1913.                 addp6   r4,@r5,r6,@r7,r8,@r9    ; 21 54 65 56 67 58 69
  1914.                 addp    r4,@r5,r6,@r7,r8,@r9    ; 21 54 65 56 67 58 69
  1915.                 ashp    #3,r4,@r5,#0,r6,@r7     ; F8 03 54 65 00 56 67
  1916.                 cmpp3   r4,@r5,@r7              ; 35 54 65 67
  1917.                 cmpp    r4,@r5,@r7              ; 35 54 65 67
  1918.                 cmpp4   r4,@r5,r6,@r7           ; 37 54 65 56 67
  1919.                 cmpp    r4,@r5,r6,@r7           ; 37 54 65 56 67
  1920.                 cvtlp   r2,r6,@r7               ; F9 52 56 67
  1921.                 cvtpl   r4,@r5,r2               ; 36 54 65 52
  1922.                 cvtps   r4,@r5,r6,@r7           ; 08 54 65 56 67
  1923.                 cvtpt   r4,@r5,@r10,r6,@r7      ; 24 54 65 6A 56 67
  1924.                 cvtsp   r4,@r5,r6,@r7           ; 09 54 65 56 67
  1925.                 cvttp   r4,@r5,@r10,r6,@r7      ; 26 54 65 6A 56 67
  1926.                 divp    r4,@r5,r6,@r7,r8,@r9    ; 27 54 65 56 67 58 69
  1927.                 movp    r4,@r5,@r7              ; 34 54 65 67
  1928.                 mulp    r4,@r5,r6,@r7,r8,@r9    ; 25 54 65 56 67 58 69
  1929.                 subp4   r4,@r5,r6,@r7           ; 22 54 65 56 67
  1930.                 subp    r4,@r5,r6,@r7           ; 22 54 65 56 67
  1931.                 subp6   r4,@r5,r6,@r7,r8,@r9    ; 23 54 65 56 67 58 69
  1932.                 subp    r4,@r5,r6,@r7,r8,@r9    ; 23 54 65 56 67 58 69
  1933.                 editpc  r4,@r5,@r7,@r9          ; 38 54 65 67 69
  1934.  
  1935. ;-------------------------------------------------
  1936.  
  1937.                 ; The instruction's length and the address of the branch
  1938.                 ; displacement depends on the previous arguments, which
  1939.                 ; depend on the operand size if immediate. Additionally,
  1940.                 ; ACBG and ACBH are two-byte opcodes.  So the range
  1941.                 ; of the reachable addresses varies:
  1942.  
  1943.                 acbb    #100, #1, r4, *         ; 9D 8F 64 01 54 F9 FF
  1944.                 acbb    #100, #1, r4, *+0x8006  ; 9D 8F 64 01 54 FF 7F
  1945.                 expect  1370
  1946.                 acbb    #100, #1, r4, *+0x8007
  1947.                 endexpect
  1948.                 acbb    #100, #1, r4, *-0x7ff9  ; 9D 8F 64 01 54 00 80
  1949.                 expect  1370
  1950.                 acbb    #100, #1, r4, *-0x7ffa
  1951.                 endexpect
  1952.  
  1953.                 acbw    #100, #1, r4, *         ; 3D 8F 64 00 01 54 F8 FF
  1954.                 acbw    #100, #1, r4, *+0x8007  ; 3D 8F 64 00 01 54 FF 7F
  1955.                 expect  1370
  1956.                 acbw    #100, #1, r4, *+0x8008
  1957.                 endexpect
  1958.                 acbw    #100, #1, r4, *-0x7ff8  ; 3D 8F 64 00 01 54 00 80
  1959.                 expect  1370
  1960.                 acbw    #100, #1, r4, *-0x7ff9
  1961.                 endexpect
  1962.  
  1963.                 acbl    #100, #1, r4, *         ; F1 8F 64 00 00 00 01 54 F6 FF
  1964.                 acbl    #100, #1, r4, *+0x8009  ; F1 8F 64 00 00 00 01 54 FF 7F
  1965.                 expect  1370
  1966.                 acbl    #100, #1, r4, *+0x800a
  1967.                 endexpect
  1968.                 acbl    #100, #1, r4, *-0x7ff6  ; F1 8F 64 00 00 00 01 54 00 80
  1969.                 expect  1370
  1970.                 acbl    #100, #1, r4, *-0x7ff7
  1971.                 endexpect
  1972.  
  1973.                 acbf    #100, #1, r4, *         ; 4F 8F C8 43 00 00 08 54 F6 FF
  1974.                 acbf    #100, #1, r4, *+0x8009  ; 4F 8F C8 43 00 00 08 54 FF 7F
  1975.                 expect  1370
  1976.                 acbf    #100, #1, r4, *+0x800a
  1977.                 endexpect
  1978.                 acbf    #100, #1, r4, *-0x7ff6  ; 4F 8F C8 43 00 00 08 54 00 80
  1979.                 expect  1370
  1980.                 acbf    #100, #1, r4, *-0x7ff7
  1981.                 endexpect
  1982.  
  1983.                 acbd    #100, #1, r4, *         ; 6F 8F C8 43 00 00 00 00 00 00 08 54 F2 FF
  1984.                 acbd    #100, #1, r4, *+0x800d  ; 6F 8F C8 43 00 00 00 00 00 00 08 54 FF 7F
  1985.                 expect  1370
  1986.                 acbd    #100, #1, r4, *+0x800e
  1987.                 endexpect
  1988.                 acbd    #100, #1, r4, *-0x7ff2  ; 6F 8F C8 43 00 00 00 00 00 00 08 54 00 80
  1989.                 expect  1370
  1990.                 acbd    #100, #1, r4, *-0x7ff3
  1991.                 endexpect
  1992.  
  1993.                 acbg    #100, #1, r4, *         ; FD 4F 8F 79 40 00 00 00 00 00 00 08 54 F1 FF
  1994.                 acbg    #100, #1, r4, *+0x800e  ; FD 4F 8F 79 40 00 00 00 00 00 00 08 54 FF 7F
  1995.                 expect  1370
  1996.                 acbg    #100, #1, r4, *+0x800f
  1997.                 endexpect
  1998.                 acbg    #100, #1, r4, *-0x7ff1  ; FD 4F 8F 79 40 00 00 00 00 00 00 08 54 00 80
  1999.                 expect  1370
  2000.                 acbg    #100, #1, r4, *-0x7ff2
  2001.                 endexpect
  2002.  
  2003.                 acbh    #100, #1, r4, *         ; FD 6F 8F 07 40 00 90 00 00 00 00 00 00 00 00 00 00 00 00 08 54 E9 FF
  2004.                 acbh    #100, #1, r4, *+0x8016  ; FD 6F 8F 07 40 00 90 00 00 00 00 00 00 00 00 00 00 00 00 08 54 FF 7F
  2005.                 expect  1370
  2006.                 acbh    #100, #1, r4, *+0x8017
  2007.                 endexpect
  2008.                 acbh    #100, #1, r4, *-0x7fe9  ; FD 6F 8F 07 40 00 90 00 00 00 00 00 00 00 00 00 00 00 00 08 54 00 80
  2009.                 expect  1370
  2010.                 acbh    #100, #1, r4, *-0x7fea
  2011.                 endexpect
  2012.  
  2013. ;-------------------------------------------------
  2014.  
  2015.                 aobleq  #100, r4, *             ; F3 8F 64 00 00 00 54 F8
  2016.                 aobleq  #100, r4, *+0x87        ; F3 8F 64 00 00 00 54 7F
  2017.                 expect  1370
  2018.                 aobleq  #100, r4, *+0x88
  2019.                 endexpect
  2020.                 aobleq  #100, r4, *-0x78        ; F3 8F 64 00 00 00 54 80
  2021.                 expect  1370
  2022.                 aobleq  #100, r4, *-0x79
  2023.                 endexpect
  2024.  
  2025. ;-------------------------------------------------
  2026.  
  2027.                 aoblss  #100, r4, *             ; F2 8F 64 00 00 00 54 F8
  2028.                 aoblss  #100, r4, *+0x87        ; F2 8F 64 00 00 00 54 7F
  2029.                 expect  1370
  2030.                 aoblss  #100, r4, *+0x88
  2031.                 endexpect
  2032.                 aoblss  #100, r4, *-0x78        ; F2 8F 64 00 00 00 54 80
  2033.                 expect  1370
  2034.                 aoblss  #100, r4, *-0x79
  2035.                 endexpect
  2036.  
  2037. ;-------------------------------------------------
  2038.  
  2039. all_b_b         macro   op, code
  2040.                 op      *       ; code FE
  2041.                 op      *+0x81  ; code 7F
  2042.                 expect  1370
  2043.                 op      *+0x82
  2044.                 endexpect
  2045.                 op      *-0x7e  ; code 80
  2046.                 expect  1370
  2047.                 op      *-0x7f
  2048.                 endexpect
  2049.                 endm
  2050.  
  2051.                 all_b_b bgtr, 14
  2052.                 all_b_b bleq, 15
  2053.                 all_b_b bneq, 12
  2054.                 all_b_b bnequ, 12
  2055.                 all_b_b beql, 13
  2056.                 all_b_b beqlu, 13
  2057.                 all_b_b bgeq, 18
  2058.                 all_b_b blss, 19
  2059.                 all_b_b bgtru, 1a
  2060.                 all_b_b blequ, 1b
  2061.                 all_b_b bvc, 1c
  2062.                 all_b_b bvs, 1d
  2063.                 all_b_b bgequ, 1e
  2064.                 all_b_b bcc, 1e
  2065.                 all_b_b blssu,1f
  2066.                 all_b_b bcs, 1f
  2067.  
  2068. ;-------------------------------------------------
  2069.  
  2070. all_bf_b        macro   op, code
  2071.                 op      #10,@r5,*       ; code 0A 65 FC
  2072.                 op      #10,@r5,*+0x83  ; code 0A 65 7F
  2073.                 expect  1370
  2074.                 op      #10,@r5,*+0x84
  2075.                 endexpect
  2076.                 op      #10,@r5,*-0x7c  ; code 0A 65 80
  2077.                 expect  1370
  2078.                 op      #10,@r5,*-0x7d
  2079.                 endexpect
  2080.                 op      #10,r5,*        ; code 0A 55 FC
  2081.                 op      #10,r5,*+0x83   ; code 0A 55 7F
  2082.                 expect  1370
  2083.                 op      #10,r5,*+0x84
  2084.                 endexpect
  2085.                 op      #10,r5,*-0x7c   ; code 0A 55 80
  2086.                 expect  1370
  2087.                 op      #10,r5,*-0x7d
  2088.                 endexpect
  2089.                 expect  2180
  2090.                 op      #32,r5,*
  2091.                 endexpect
  2092.                 endm
  2093.  
  2094.                 all_bf_b bbc, e1
  2095.                 all_bf_b bbs, e0
  2096.                 all_bf_b bbss, e2
  2097.                 all_bf_b bbcs, e3
  2098.                 all_bf_b bbsc, e4
  2099.                 all_bf_b bbcc, e5
  2100.                 all_bf_b bbssi, e6
  2101.                 all_bf_b bbcci, e7
  2102.  
  2103. ;-------------------------------------------------
  2104.  
  2105. all_bl_b        macro   op, code
  2106.                 op      @r5,*           ; code 65 FD
  2107.                 op      @r5,*+0x82      ; code 65 7F
  2108.                 expect  1370
  2109.                 op      @r5,*+0x83
  2110.                 endexpect
  2111.                 op      @r5,*-0x7d      ; code 65 80
  2112.                 expect  1370
  2113.                 op      @r5,*-0x7e
  2114.                 endexpect
  2115.                 op      r5,*            ; code 55 FD
  2116.                 op      r5,*+0x82       ; code 55 7F
  2117.                 expect  1370
  2118.                 op      r5,*+0x83
  2119.                 endexpect
  2120.                 op      r5,*-0x7d       ; code 55 80
  2121.                 expect  1370
  2122.                 op      r5,*-0x7e
  2123.                 endexpect
  2124.                 endm
  2125.  
  2126.                 all_bl_b blbs, e8
  2127.                 all_bl_b blbc, e9
  2128.  
  2129. ;-------------------------------------------------
  2130.  
  2131. __S             set     ""
  2132. all_br          macro   op, codeb, codew
  2133. __S             set     "b"
  2134.                 op{__S} *               ; codeb FE
  2135.                 op{__S} *+0x81          ; codeb 7F
  2136.                 expect  1370
  2137.                 op{__S} *+0x82
  2138.                 endexpect
  2139.                 op{__S} *-0x7e          ; codeb 80
  2140.                 expect  1370
  2141.                 op{__S} *-0x7f
  2142.  
  2143. __S             set     "w"
  2144.                 endexpect
  2145.                 op{__S} *               ; codew FD FF
  2146.                 op{__S} *+0x8002        ; codew FF 7F
  2147.                 expect  1370
  2148.                 op{__S} *+0x8003
  2149.                 endexpect
  2150.                 op{__S} *-0x7ffd        ; codew 00 80
  2151.                 expect  1370
  2152.                 op{__S} *-0x7ffe
  2153.                 endexpect
  2154.  
  2155.                 op      *               ; codeb FE
  2156.                 op      *+0x81          ; codeb 7F
  2157.                 op      *+0x82          ; codew 7F 00
  2158.                 op      *-0x7e          ; codeb 80
  2159.                 op      *-0x7f          ; codew 7E FF
  2160.                 op      *+0x8002        ; codew FF 7F
  2161.                 expect  1370
  2162.                 op      *+0x8003
  2163.                 endexpect
  2164.                 op      *-0x7ffd        ; codew 00 80
  2165.                 expect  1370
  2166.                 op      *-0x7ffe
  2167.                 endexpect
  2168.                
  2169.                 endm
  2170.  
  2171.                 all_br  br,11,31
  2172.                 all_br  bsb,10,30
  2173.  
  2174. ;-------------------------------------------------
  2175.  
  2176.                 ; 8F 54 20 05 60 00 C4 00 28 01 8C 01 F0 01 54 02
  2177.                 caseb   r4, #32, #(37-32), *+100, *+200, *+300, *+400, *+500, *+600
  2178.                 expect  460
  2179.                 ; 8F 54 20 05 60 00 C4 00 28 01 8C 01 F0 01
  2180.                 caseb   r4, #32, #(37-32), *+100, *+200, *+300, *+400, *+500
  2181.                 endexpect
  2182.                 ; AF 54 8F E8 03 03 5E 00 C2 00 26 01 8A 01
  2183.                 casew   r4, #1000, #(1003-1000), *+100, *+200, *+300, *+400
  2184.                 ; CF 54 8F E8 03 00 00 03 5C 00 C0 00 24 01 88 01
  2185.                 casel   r4, #1000, #(1003-1000), *+100, *+200, *+300, *+400
  2186.  
  2187.  
  2188. ;-------------------------------------------------
  2189.  
  2190.                 sobgeq  r4,*            ; F4 54 FD
  2191.                 sobgeq  r4,*+0x82       ; F4 54 7F
  2192.                 expect  1370
  2193.                 sobgeq  r4,*+0x83
  2194.                 endexpect
  2195.                 sobgeq  r4,*-0x7d       ; F4 54 80
  2196.                 expect  1370
  2197.                 sobgeq  r4,*-0x7e
  2198.                 endexpect
  2199.  
  2200.                 sobgtr  r4,*            ; F5 54 FD
  2201.                 sobgtr  r4,*+0x82       ; F5 54 7F
  2202.                 expect  1370
  2203.                 sobgtr  r4,*+0x83
  2204.                 endexpect
  2205.                 sobgtr  r4,*-0x7d       ; F5 54 80
  2206.                 expect  1370
  2207.                 sobgtr  r4,*-0x7e
  2208.                 endexpect
  2209.  
  2210. ;-------------------------------------------------
  2211.  
  2212.                 irp     instr,blkb,blkw,blkl,blkq,blko,blkf,blkd,blkg,blkh
  2213.                 word    _next-_start
  2214. _start          instr   3
  2215. _next
  2216.                 endm
  2217.  
  2218.                 byte    1,2,3           ; 01 02 03
  2219.                 ;expect
  2220.                 ;byte   "dontdothat"
  2221.                 ;endexpect
  2222.                 word    1,2,3           ; 01 00 02 00 03 00
  2223.                 lword   1,2,3           ; 01 00 00 00 02 00 00 00 03 00 00 00
  2224.                 quad    1,2,3           ; 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00
  2225.                 octa    1,2,3           ; 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2226.                                         ; 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2227.                                         ; 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2228.  
  2229.                 float   1.0,2.0,3.0     ; 80 40 00 00 00 41 00 00 40 41 00 00
  2230.                 f_floating 1.0,2.0,3.0  ; 80 40 00 00 00 41 00 00 40 41 00 00
  2231.                 double  1.0,2.0,3.0     ; 80 40 00 00 00 00 00 00 00 41 00 00 00 00 00 00 40 41 00 00 00 00 00 00
  2232.                 d_floating 1.0,2.0,3.0  ; 80 40 00 00 00 00 00 00 00 41 00 00 00 00 00 00 40 41 00 00 00 00 00 00
  2233.                 g_floating 1.0,2.0,3.0  ; 10 40 00 00 00 00 00 00 20 40 00 00 00 00 00 00 28 40 00 00 00 00 00 00
  2234.                 h_floating 1.0,2.0,3.0  ; 01 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2235.                                         ; 02 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2236.                                         ; 02 40 00 80 00 00 00 00 00 00 00 00 00 00 00 00
  2237.  
  2238.                 ascii   "The quick brown fox jumps over the lazy dog."
  2239.                 asciz   "The quick brown fox jumps over the lazy dog."
  2240.                 ascic   "The quick brown fox jumps over the lazy dog."
  2241.  
  2242.                 packed  -12,pack        ; 01 2D
  2243.                 byte    pack            ; 02
  2244.                 packed  500             ; 50 0C
  2245.                 packed  0               ; 0C
  2246.                 packed  -0,sum          ; 0C
  2247.                 byte    sum             ; 01
  2248.                 packed  "1234",e6       ; 01 23 4C
  2249.                 packed  "1234567890123456789012345678901",maxpack ; 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 1C
  2250.                 byte    maxpack         ; 1F
  2251.                 expect  1324
  2252.                 packed  "12345678901234567890123456789012" ; too long
  2253.                 endexpect
  2254.                 expect  1323
  2255.                 packed  "1234BCD"
  2256.                 endexpect
  2257.