Subversion Repositories pentevo

Rev

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

  1.         cpu             hd641016
  2.         include         "regh16.inc"
  3.  
  4.         page            0
  5.         supmode         on
  6.  
  7.         mov.b:g         r5,r12
  8.         mov:g.w         r5,r12
  9.         mov.l:g         r5,r12
  10.         mov.b:r         r5,r12
  11.         mov:r.w         r5,r12
  12.         mov.l:r         r5,r12
  13.         mov.b:g         r5,r0
  14.         mov.w:g         r5,r0
  15.         mov.l:g         r5,r0
  16.  
  17.         mov.l           #$2345.w,r13
  18.  
  19.         mov.l           @r4,r0
  20.         mov.l           @r4,r13
  21.         mov.l           @(r4),r0
  22.         mov.l           @(r4),r13
  23.  
  24.         mov.l           @($23,r4),r0
  25.         mov.l           @($23,r4),r13
  26.         mov.l           @($23.b,r4),r0
  27.         mov.l           @($23.b,r4),r13
  28.         mov.l           @($23.w,r4),r0
  29.         mov.l           @($23.w,r4),r13
  30.         mov.l           @($23.l,r4),r0
  31.         mov.l           @($23.l,r4),r13
  32.         mov.l           @($2345,r4),r0
  33.         mov.l           @($2345,r4),r13
  34.         mov.l           @($2345.w,r4),r0
  35.         mov.l           @($2345.w,r4),r13
  36.         mov.l           @($2345.l,r4),r0
  37.         mov.l           @($2345.l,r4),r13
  38.         mov.l           @($234567,r4),r0
  39.         mov.l           @($234567,r4),r13
  40.         mov.l           @($234567.l,r4),r0
  41.         mov.l           @($234567.l,r4),r13
  42.  
  43.         mov.l           @r4+,r0
  44.         mov.l           @r4+,r13
  45.         mov.l           @(r4+),r0
  46.         mov.l           @(r4+),r13
  47.  
  48.         mov.l           @-r4,r0
  49.         mov.l           @-r4,r13
  50.         mov.l           @(-r4),r0
  51.         mov.l           @(-r4),r13
  52.  
  53.         mov.l           @$34,r0
  54.         mov.l           @$34,r13
  55.         mov.l           @($34),r0
  56.         mov.l           @($34),r13
  57.         mov.l           @$34.b,r0
  58.         mov.l           @$34.b,r13
  59.         mov.l           @($34.b),r0
  60.         mov.l           @($34.b),r13
  61.         mov.l           @$34.w,r0
  62.         mov.l           @$34.w,r13
  63.         mov.l           @($34.w),r0
  64.         mov.l           @($34.w),r13
  65.         mov.l           @$34.l,r0
  66.         mov.l           @$34.l,r13
  67.         mov.l           @($34.l),r0
  68.         mov.l           @($34.l),r13
  69.         mov.l           @$ffff89,r0
  70.         mov.l           @$ffff89,r13
  71.         mov.l           @($ffff89),r0
  72.         mov.l           @($ffff89),r13
  73.         mov.l           @$3456,r0
  74.         mov.l           @$3456,r13
  75.         mov.l           @($3456),r0
  76.         mov.l           @($3456),r13
  77.         mov.l           @$3456.w,r0
  78.         mov.l           @$3456.w,r13
  79.         mov.l           @($3456.w),r0
  80.         mov.l           @($3456.w),r13
  81.         mov.l           @$3456.l,r0
  82.         mov.l           @$3456.l,r13
  83.         mov.l           @($3456.l),r0
  84.         mov.l           @($3456.l),r13
  85.         mov.l           @$ff89ab,r0
  86.         mov.l           @$ff89ab,r13
  87.         mov.l           @($ff89ab),r0
  88.         mov.l           @($ff89ab),r13
  89.         mov.l           @$345678,r0
  90.         mov.l           @$345678,r13
  91.         mov.l           @($345678),r0
  92.         mov.l           @($345678),r13
  93.         mov.l           @$345678.l,r0
  94.         mov.l           @$345678.l,r13
  95.         mov.l           @($345678.l),r0
  96.         mov.l           @($345678.l),r13
  97.         mov.l           @$89abcd,r0
  98.         mov.l           @$89abcd,r13
  99.         mov.l           @($89abcd),r0
  100.         mov.l           @($89abcd),r13
  101.  
  102.         mov.l           @(r4*1),r0
  103.         mov.l           @(r4*1),r13
  104.         mov.l           @(-10,r4*1),r0
  105.         mov.l           @(-10,r4*1),r13
  106.         mov.l           @(-10.b,r4*1),r0
  107.         mov.l           @(-10.b,r4*1),r13
  108.         mov.l           @(-10.w,r4*1),r0
  109.         mov.l           @(-10.w,r4*1),r13
  110.         mov.l           @(-10.l,r4*1),r0
  111.         mov.l           @(-10.l,r4*1),r13
  112.         mov.l           @(-1000,r4*2),r0
  113.         mov.l           @(-1000,r4*2),r13
  114.         mov.l           @(-1000.w,r4*2),r0
  115.         mov.l           @(-1000.w,r4*2),r13
  116.         mov.l           @(-1000.l,r4*2),r0
  117.         mov.l           @(-1000.l,r4*2),r13
  118.         mov.l           @(-100000,r4*8),r0
  119.         mov.l           @(-100000,r4*8),r13
  120.         mov.l           @(-100000.l,r4*8),r0
  121.         mov.l           @(-100000.l,r4*8),r13
  122.  
  123.         mov.l           @(r4,r2),r0
  124.         mov.l           @(r4,r2),r13
  125.         mov.l           @(r4,r2.w),r0
  126.         mov.l           @(r4,r2.w),r13
  127.         mov.l           @(r4,r2*4),r0
  128.         mov.l           @(r4,r2*4),r13
  129.         mov.l           @(r4,r2.w*4),r0
  130.         mov.l           @(r4,r2.w*4),r13
  131.         mov.l           @(10,r4,r2.l*8),r0
  132.         mov.l           @(10,r4,r2.l*8),r13
  133.         mov.l           @(10.b,r4,r2.l*8),r0
  134.         mov.l           @(10.b,r4,r2.l*8),r13
  135.         mov.l           @(10.w,r4,r2.l*8),r0
  136.         mov.l           @(10.w,r4,r2.l*8),r13
  137.         mov.l           @(10.l,r4,r2.l*8),r0
  138.         mov.l           @(10.l,r4,r2.l*8),r13
  139.         mov.l           @(1000,r4,r2.l*8),r0
  140.         mov.l           @(1000,r4,r2.l*8),r13
  141.         mov.l           @(1000.w,r4,r2.l*8),r0
  142.         mov.l           @(1000.w,r4,r2.l*8),r13
  143.         mov.l           @(1000.l,r4,r2.l*8),r0
  144.         mov.l           @(1000.l,r4,r2.l*8),r13
  145.         mov.l           @(100000,r4,r2.l*8),r0
  146.         mov.l           @(100000,r4,r2.l*8),r13
  147.         mov.l           @(100000.l,r4,r2.l*8),r0
  148.         mov.l           @(100000.l,r4,r2.l*8),r13
  149.  
  150.         mov.l           @(r2,pc),r0
  151.         mov.l           @(r2,pc),r13
  152.         mov.l           @(r2.w,pc),r0
  153.         mov.l           @(r2.w,pc),r13
  154.         mov.l           @(r2*4,pc),r0
  155.         mov.l           @(r2*4,pc),r13
  156.         mov.l           @(r2.w*4,pc),r0
  157.         mov.l           @(r2.w*4,pc),r13
  158.         mov.l           @(*+20,r2.l*8,pc),r0
  159.         mov.l           @(*+20,r2.l*8,pc),r13
  160.         mov.l           @(*+20.b,r2.l*8,pc),r0
  161.         mov.l           @(*+20.b,r2.l*8,pc),r13
  162.         mov.l           @(*+20.w,r2.l*8,pc),r0
  163.         mov.l           @(*+20.w,r2.l*8,pc),r13
  164.         mov.l           @(*+20.l,r2.l*8,pc),r0
  165.         mov.l           @(*+20.l,r2.l*8,pc),r13
  166.         mov.l           @(*+2000,r2.l*8,pc),r0
  167.         mov.l           @(*+2000,r2.l*8,pc),r13
  168.         mov.l           @(*+2000.w,r2.l*8,pc),r0
  169.         mov.l           @(*+2000.w,r2.l*8,pc),r13
  170.         mov.l           @(*+2000.l,r2.l*8,pc),r0
  171.         mov.l           @(*+2000.l,r2.l*8,pc),r13
  172.         mov.l           @(*+200000,r2.l*8,pc),r0
  173.         mov.l           @(*+200000,r2.l*8,pc),r13
  174.         mov.l           @(*+200000.l,r2.l*8,pc),r0
  175.         mov.l           @(*+200000.l,r2.l*8,pc),r13
  176.         mov.l           @(10,r13),@(*+200000.l,r2.l*8,pc)
  177.  
  178.         mov.l           @pc,r0
  179.         mov.l           @pc,r13
  180.         mov.l           @(pc),r0
  181.         mov.l           @(pc),r13
  182.         mov.l           @(*+20,pc),r0
  183.         mov.l           @(*+20,pc),r13
  184.         mov.l           @(*+20.b,pc),r0
  185.         mov.l           @(*+20.b,pc),r13
  186.         mov.l           @(*+20.w,pc),r0
  187.         mov.l           @(*+20.w,pc),r13
  188.         mov.l           @(*+20.l,pc),r0
  189.         mov.l           @(*+20.l,pc),r13
  190.         mov.l           @(*+2000,pc),r0
  191.         mov.l           @(*+2000,pc),r13
  192.         mov.l           @(*+2000.w,pc),r0
  193.         mov.l           @(*+2000.w,pc),r13
  194.         mov.l           @(*+2000.l,pc),r0
  195.         mov.l           @(*+2000.l,pc),r13
  196.         mov.l           @(*+200000,pc),r0
  197.         mov.l           @(*+200000,pc),r13
  198.         mov.l           @(*+200000.l,pc),r0
  199.         mov.l           @(*+200000.l,pc),r13
  200.         mov.l           @(10,r13),@(*+200000.l,pc)
  201.  
  202.         mov.l           @@r4,r0
  203.         mov.l           @@r4,r13
  204.         mov.l           @(@(r4)),r0
  205.         mov.l           @(@(r4)),r13
  206.         mov.l           @(10,@(r4)),r0
  207.         mov.l           @(10,@(r4)),r13
  208.         mov.l           @(@(10,r4)),r0
  209.         mov.l           @(@(10,r4)),r13
  210.         mov.l           @(10,@(10,r4)),r0
  211.         mov.l           @(10,@(10,r4)),r13
  212.         mov.l           @(10.l,@(r4)),r0
  213.         mov.l           @(10.l,@(r4)),r13
  214.         mov.l           @(@(10.l,r4)),r0
  215.         mov.l           @(@(10.l,r4)),r13
  216.         mov.l           @(10.l,@(10.l,r4)),r0
  217.         mov.l           @(10.l,@(10.l,r4)),r13
  218.  
  219.         mov.l           <crn>r5,r0
  220.         mov.l           <crn>r5,r13
  221.         mov.l           <prn>r5,r0
  222.         mov.l           <prn>r5,r13
  223.         mov.l           <prn><crn>r5,r0
  224.         mov.l           <prn><crn>r5,r13
  225.  
  226.         mov.l           #30,@r13                ; expect Q format
  227.         mov.l           #-30,@r13
  228.         mov.l           #$ffffffa0,@r13
  229.         mov.w           #30,@r13
  230.         mov.w           #-20,@r13
  231.         mov.w           #$ffa0,@r13
  232.         mov.b           #30,@r13
  233.         mov.b           #-30,@r13
  234.         mov.b           #$a0,@r13
  235.  
  236.         mov.l           #3,r13                  ; expect RQ format
  237.         mov.l           #-3,r13
  238.         mov.l           #$fffffffa,r13
  239.         mov.w           #3,r13
  240.         mov.w           #-3,r13
  241.         mov.w           #$fffa,r13
  242.         mov.b           #3,r13
  243.         mov.b           #-3,r13
  244.         mov.b           #$fa,r13
  245.  
  246.         mov:rq.l        #3,r13
  247.         ;mov:rq.l       #13,r13                 ; expect fail
  248.         mov.l           #13,r13                 ; expect Q
  249.         mov:g.l         #13,r13
  250.  
  251.         irp             instr,add,sub,cmp,mov
  252.         instr:g.w       r0,@($23f5:16,r7)
  253.         instr:g.w       #$a4.b,@$6bc.w
  254.         instr:g.w       @($3e:8,r4*4),@($2436:16,r9.l*2,r13)
  255.         instr:g.w       @r4+,@-r15
  256.         instr:g.w       @((*+$2a):8,pc),@((*+$234a):16,r2.w*8,pc)
  257.         instr:g.w       @($fe:8,@($0124:16,r4)),r7
  258.         instr:g.w       crO,@($23F5:16,pr7)
  259.         endm
  260.  
  261.         irp             instr,adds,cmps,subs,movs
  262.         irp             sz,b,w,l
  263.         instr.sz        #4,r0
  264.         instr.sz        #4,r13
  265.         instr.sz        @r5,r0
  266.         instr.sz        @r5,r13
  267.         endm
  268.         endm
  269.  
  270.         irp             instr,addx,subx,and,or,xor
  271.         irp             sz,b,w,l
  272.         instr.sz        #40.b,r0
  273.         instr.sz        #40.b,r13
  274.         instr.sz        @(r5,1000),r0
  275.         instr.sz        @(r5,1000),r13
  276.         endm
  277.         endm
  278.  
  279.         irp             instr,dadd,dsub
  280.         instr           #40.b,r0
  281.         instr.b         #40.b,r0
  282.         instr           #40.b,r13
  283.         instr.b         #40.b,r13
  284.         instr           @(r5,1000),r0
  285.         instr.b         @(r5,1000),r0
  286.         instr           @(r5,1000),r13
  287.         instr.b         @(r5,1000),r13
  288.         endm
  289.  
  290.         irp             instr,mulxs,mulxu,divxs,divxu
  291.         irp             sz,b,w
  292.         instr.sz        #40.b,r0
  293.         instr.sz        #40.b,r13
  294.         instr.sz        @(r5,1000),r0
  295.         instr.sz        @(r5,1000),r13
  296.         endm
  297.         endm
  298.  
  299.         irp             instr,neg,not,negx,tst,clr
  300.         irp             sz,b,w,l
  301.         instr.sz        r0
  302.         instr.sz        r5
  303.         instr.sz        @$40.b
  304.         instr.sz        @(r5,1000)
  305.         endm
  306.         endm
  307.         irp             sz,b,w,l
  308.         tst.sz          #$40
  309.         endm
  310.         irp             instr,dneg,tas
  311.         instr.b         r0
  312.         instr           r0
  313.         instr.b         r5
  314.         instr           r5
  315.         instr.b         @$40.b
  316.         instr           @$40.b
  317.         instr.b         @(r5,1000)
  318.         instr           @(r5,1000)
  319.         endm
  320.  
  321.         irp             instr,exts,extu
  322.         irp             sz,b,w,l
  323.         instr.sz        r13
  324.         endm
  325.         endm
  326.  
  327.         irp             instr,andc,orc,xorc,ldc
  328.         instr           #$55,ccr
  329.         instr.b         #$55,ccr
  330.         instr           #$55,vbnr
  331.         instr.b         #$55,vbnr
  332.         instr           #$55aa1234,cbnr
  333.         instr.l         #$55aa1234,cbnr
  334.         instr           #$55aa1234,bsp
  335.         instr.l         #$55aa1234,bsp
  336.         instr           #$55,bmr
  337.         instr.b         #$55,bmr
  338.         instr           #$55,gbnr
  339.         instr.b         #$55,gbnr
  340.         instr           #$55aa,sr
  341.         instr.w         #$55aa,sr
  342.         instr           #$55aa1234,ebr
  343.         instr.l         #$55aa1234,ebr
  344.         instr           #$55aa1234,rbr
  345.         instr.l         #$55aa1234,rbr
  346.         instr           #$55aa1234,usp
  347.         instr.l         #$55aa1234,usp
  348.         instr           #$55aa1234,ibr
  349.         instr.l         #$55aa1234,ibr
  350.         endm
  351.  
  352.         irp             instr,stc
  353.         instr           ccr,@$55
  354.         instr.b         ccr,@$55
  355.         instr           vbnr,@$55
  356.         instr.b         vbnr,@$55
  357.         instr           cbnr,@$55aa1234
  358.         instr.l         cbnr,@$55aa1234
  359.         instr           bsp,@$55aa1234
  360.         instr.l         bsp,@$55aa1234
  361.         instr           bmr,@$55
  362.         instr.b         bmr,@$55
  363.         instr           gbnr,@$55
  364.         instr.b         gbnr,@$55
  365.         instr           sr,@$55aa
  366.         instr.w         sr,@$55aa
  367.         instr           ebr,@$55aa1234
  368.         instr.l         ebr,@$55aa1234
  369.         instr           rbr,@$55aa1234
  370.         instr.l         rbr,@$55aa1234
  371.         instr           usp,@$55aa1234
  372.         instr.l         usp,@$55aa1234
  373.         instr           ibr,@$55aa1234
  374.         instr.l         ibr,@$55aa1234
  375.         endm
  376.  
  377.         irp             instr,bra,bsr,bcc,bcc:g,bhs,bhs:g,bcs,bcs:g,blo,blo:g,bne,bne:g,beq,beq:g,bge,bge:g,blt,blt:g,bgt,bgt:g,ble,ble:g,bhi,bhi:g,bls,bls:g,bpl,bpl:g,bmi,bmi:g,bvc,bvc:g,bvs,bvs:g,bt,bt:g,bf,bf:g
  378.         instr           *+10
  379.         instr.b         *+10
  380.         instr.w         *+10
  381.         instr.l         *+10
  382.         instr           *-10
  383.         instr.b         *-10
  384.         instr.w         *-10
  385.         instr.l         *-10
  386.         instr           *+1000
  387.         ;instr.b                *+1000
  388.         instr.w         *+1000
  389.         instr.l         *+1000
  390.         instr           *-1000
  391.         ;instr.b                *-1000
  392.         instr.w         *-1000
  393.         instr.l         *-1000
  394.         instr           *+100000
  395.         ;instr.b                *+100000
  396.         ;instr.w                *+100000
  397.         instr.l         *+100000
  398.         endm
  399.  
  400.         rts
  401.         reset
  402.         rte
  403.         rtr
  404.         sleep
  405.         nop
  406.         icbn
  407.         dcbn
  408.  
  409.         irp             instr,rotl,rotr,rotxl,rotxr,shal,shar,shll,shlr
  410.         irp             sz,b,w,l
  411.         instr.sz        #7,r0
  412.         instr.sz        #7,r13
  413.         instr.sz        #7,@(100,r13)
  414.         instr.sz        r4,r0
  415.         instr.sz        r4,r13
  416.         instr.sz        r4,@(100,r13)
  417.         endm
  418.         endm
  419.  
  420.         irp             cond,cc,hs,cs,lo,ne,eq,ge,lt,gt,le,hi,ls,pl,mi,vc,vs,t,f
  421.         set/cond        r13
  422.         set/cond.b      r13
  423.         set/cond        @r13
  424.         set/cond.b      @r13
  425.         trap/cond
  426.         scb/cond        r13,*+10
  427.         scb/cond.b      r13,*+10
  428.         scb/cond.w      r13,*+10
  429.         scb/cond.l      r13,*+10
  430.         scb/cond        r13,*+1000
  431.         scb/cond.w      r13,*+1000
  432.         scb/cond.l      r13,*+1000
  433.         scb/cond        r13,*+100000
  434.         scb/cond.l      r13,*+100000
  435.         endm
  436.  
  437.         irp             instr,jmp,jsr
  438.         instr           @r5
  439.         instr           @(r4*1,r5)
  440.         instr           @(r4*2,r5)
  441.         endm
  442.  
  443.         irp             sz,b,w
  444.         swap.sz         r13
  445.         swap.sz         r0
  446.         swap.sz         @r5+
  447.         swap.sz         @(*,pc)
  448.         endm
  449.  
  450.         xch             r4,r13
  451.         xch             r13,r4
  452.         xch.l           r4,r13
  453.         xch.l           r13,r4
  454.  
  455.         link            r13,#-4
  456.         link.b          r13,#-4
  457.         link.w          r13,#-4
  458.         link.l          r13,#-4
  459.         link            r13,#-400
  460.         link.w          r13,#-400
  461.         link.l          r13,#-400
  462.         link            r13,#-40000
  463.         link.l          r13,#-40000
  464.         unlk            r13
  465.         trapa           #13
  466.         rtd             #-4
  467.         rtd.b           #-4
  468.         rtd.w           #-4
  469.         rtd.l           #-4
  470.         rtd             #-400
  471.         rtd.w           #-400
  472.         rtd.l           #-400
  473.         rtd             #-40000
  474.         rtd.l           #-40000
  475.  
  476.         ldm.w           @(100,r13),r0,r3-r12,r15
  477.         stm.l           r0,r3-r12,r15,@(100,r13)
  478.         cgbn            r13
  479.         cgbn            r13,r0-r3,r8
  480.         cgbn            #13
  481.         cgbn            #13,r0-r3,r8
  482.         pgbn            r0-r3,r8
  483.         pgbn
  484.         pgbn.b          r0-r3,r8
  485.         pgbn.b
  486.  
  487.         irp             instr,movfp,movfpe
  488.         instr           @(100,r4),r13
  489.         instr.w         @(100,r4),r13
  490.         instr.l         @(100,r4),r13
  491.         instr           @(100,r4),@(1000,r13)
  492.         instr.w         @(100,r4),@(1000,r13)
  493.         instr.l         @(100,r4),@(1000,r13)
  494.         endm
  495.         movfpe.b        @(100,r4),r13
  496.         movfpe.b        @(100,r4),@(1000,r13)
  497.  
  498.         irp             instr,movtp,movtpe
  499.         instr           r13,@(100,r4)
  500.         instr.w         r13,@(100,r4)
  501.         instr.l         r13,@(100,r4)
  502.         instr           @(1000,r13),@(100,r4)
  503.         instr.w         @(1000,r13),@(100,r4)
  504.         instr.l         @(1000,r13),@(100,r4)
  505.         endm
  506.         movtpe.b        r13,@(100,r4)
  507.         movtpe.b        @(1000,r13),@(100,r4)
  508.  
  509.         movf            r4
  510.         movf.b          @r4
  511.         movf.w          @(r4,100)
  512.         movf.l          @(r4,100000)
  513.  
  514.         mova            @(1000,r4),r13
  515.         mova.l          @(1000,r4),r13
  516.  
  517.         scmp/eq/f.b     r3,r4,r5,r6
  518.         scmp/eq/f.w     r3,r4,r5,r6
  519.         scmp/eq/f.b     @r3+,@r4+,r5,r6
  520.         scmp/eq/f.w     @r3+,@r4+,r5,r6
  521.         scmp/eq/b.b     r3,r4,r5,r6
  522.         scmp/eq/b.w     r3,r4,r5,r6
  523.         scmp/eq/b.b     @-r3,@-r4,r5,r6
  524.         scmp/eq/b.w     @-r3,@-r4,r5,r6
  525.  
  526.         smov/f.b        r3,r4,r5
  527.         smov/f.w        r3,r4,r5
  528.         smov/f.b        @r3+,@r4+,r5
  529.         smov/f.w        @r3+,@r4+,r5
  530.         smov/b.b        r3,r4,r5
  531.         smov/b.w        r3,r4,r5
  532.         smov/b.b        @-r3,@-r4,r5
  533.         smov/b.w        @-r3,@-r4,r5
  534.  
  535.         ssch/eq/f.b     r3,r4,r5,r6
  536.         ssch/eq/f.w     r3,r4,r5,r6
  537.         ssch/eq/f.b     @r3,@r4+,r5,r6
  538.         ssch/eq/f.w     @r3,@r4+,r5,r6
  539.         ssch/eq/b.b     r3,r4,r5,r6
  540.         ssch/eq/b.w     r3,r4,r5,r6
  541.         ssch/eq/b.b     @r3,@-r4,r5,r6
  542.         ssch/eq/b.w     @r3,@-r4,r5,r6
  543.  
  544.         sstr/f.b        r3,r4,r5
  545.         sstr/f.w        r3,r4,r5
  546.         sstr/f.b        r3,@r4+,r5
  547.         sstr/f.w        r3,@r4+,r5
  548.         sstr/b.b        r3,r4,r5
  549.         sstr/b.w        r3,r4,r5
  550.         sstr/b.b        r3,@-r4,r5
  551.         sstr/b.w        r3,@-r4,r5
  552.  
  553.         bfext           r3,r4,@r5,@$123456
  554.         bfins           r3,r4,@r5,@$123456
  555.         bfsch           r3,r4,@r5,@$123456
  556.         bfmov           r3,r4,r5,r6,r7,r8
  557.         bfmov           r3,r4,r5,r6,@r7,@r8
  558.  
  559. bbit    bit.b           7,$121
  560. bbit2   bit.b           #7,@$121
  561. wbit    bit.w           15,$122
  562. wbit2   bit.w           #15,@$122
  563. lbit    bit.l           31,$124
  564. lbit2   bit.l           #31,@$124
  565.  
  566.         irp             instr,bclr,bnot,bset,btst
  567.         instr           bbit
  568.         instr.b         #7,@$121
  569.         instr           wbit
  570.         instr.w         #15,@$122
  571.         instr           lbit
  572.         instr.l         #31,@$124
  573.         instr.b         r4,r7
  574.         instr.w         r4,r7
  575.         instr.l         r4,r7
  576.         instr.b         r4,@(1000,r7)
  577.         instr.w         r4,@(1000,r7)
  578.         instr.w         r4,@(1000,r7)
  579.         endm
  580.  
  581.         ; register alias: R15 of global bank is SP:
  582.  
  583.         mov.l           @sp+,r4
  584.         mov.l           @r15+,r4
  585.  
  586.         ; optimization to MOVF:
  587.  
  588.         mov.l           r0,@r4
  589.         mov.l           r1,@r4
  590.         mov.l           r0,@(*+20,pc)
  591.         mov.l           r1,@(*+20,pc)
  592.         mov.l           r0,@(*+200,pc)
  593.         mov.l           r1,@(*+200,pc)
  594.         mov.l           r0,@(*+200000,r5,pc)
  595.         mov.l           r1,@(*+200000,r5,pc)
  596.  
  597.         ; convert non-available SUB:Q to ADD:Q :
  598.  
  599.         add.b           #-20,@r4
  600.         sub.b           #20,@r4
  601.         add.w           #30,@(1000,r13)
  602.         sub.w           #-30,@(1000,r13)
  603.         add.l           #-40,@(1000,r13)
  604.         sub.l           #40,@(1000,r13)
  605.  
  606.         ; cannot convert second because 128 cannot be added via ADD:Q:
  607.  
  608.         sub.b           #127,@r4
  609.         sub.b           #128,@r4
  610.  
  611.         ; things detected while working with disassembly:
  612.  
  613.         ;  allow leading @ on destination address of branches
  614.  
  615.         bsr             @*+7
  616.         bhi             @*+5
  617.  
  618.         ;  immediate is allowed as destination for cmp(s):
  619.  
  620.         cmp.l           r5,#$123456
  621.         cmps.w          r6,#$12.b
  622.  
  623.         ; register aliases
  624.  
  625. reg_r0  equ             r0
  626. reg_r1  equ             r1
  627. reg_r2  equ             r2
  628. reg_r3  equ             r3
  629. reg_r4  equ             r4
  630. reg_r5  equ             r5
  631. reg_r6  equ             r6
  632. reg_r7  equ             r7
  633. reg_r8  equ             r8
  634. reg_r9  equ             r9
  635. reg_r10 equ             r10
  636. reg_r11 equ             r11
  637. reg_r12 equ             r12
  638. reg_r13 equ             r13
  639. reg_r14 equ             r14
  640. reg_r15 equ             r15
  641. reg_sp  reg             sp
  642.  
  643. reg_cr0         equ     cr0
  644. reg_cr1         equ     cr1
  645. reg_cr2         equ     cr2
  646. reg_cr3         equ     cr3
  647. reg_cr4         equ     cr4
  648. reg_cr5         equ     cr5
  649. reg_cr6         equ     cr6
  650. reg_cr7         equ     cr7
  651. reg_cr8         equ     cr8
  652. reg_cr9         equ     cr9
  653. reg_cr10        equ     cr10
  654. reg_cr11        equ     cr11
  655. reg_cr12        equ     cr12
  656. reg_cr13        equ     cr13
  657. reg_cr14        equ     cr14
  658. reg_cr15        equ     cr15
  659.  
  660. reg_pr0         equ     pr0
  661. reg_pr1         equ     pr1
  662. reg_pr2         equ     pr2
  663. reg_pr3         equ     pr3
  664. reg_pr4         equ     pr4
  665. reg_pr5         equ     pr5
  666. reg_pr6         equ     pr6
  667. reg_pr7         equ     pr7
  668. reg_pr8         equ     pr8
  669. reg_pr9         equ     pr9
  670. reg_pr10        equ     pr10
  671. reg_pr11        equ     pr11
  672. reg_pr12        equ     pr12
  673. reg_pr13        equ     pr13
  674. reg_pr14        equ     pr14
  675. reg_pr15        equ     pr15
  676.  
  677.                 mov.l   @($234567,r4),r0
  678.                 mov.l   @($234567,reg_r4),reg_r0
  679.                 mov.l   @r4+,r13
  680.                 mov.l   @reg_r4+,reg_r13
  681.                 mov.l   @-r4,r13
  682.                 mov.l   @-reg_r4,reg_r13
  683.                 mov.l   @sp+,r13
  684.                 mov.l   @reg_sp+,reg_r13
  685.                 mov.l   @-sp,r13
  686.                 mov.l   @-reg_sp,reg_r13
  687.                 add:g.w cr4,@($23F5:16,pr7)
  688.                 add:g.w reg_cr4,@($23F5:16,reg_pr7)
  689.