Subversion Repositories pentevo

Rev

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

  1.         cpu     320c40
  2.  
  3.         include stddef4x.inc
  4.  
  5.         page    0
  6.  
  7.         single  0.0
  8.         single  6.0
  9.         single  -3.0
  10.         single  0.046875
  11.  
  12.         addi3   r2,r3,r4
  13.         addi3   *+ar5(1),r3,r4
  14.         addi3   *-ar5(1),r3,r4
  15.         addi3   *++ar5(1),r3,r4
  16.         addi3   *--ar5(1),r3,r4
  17.         addi3   *ar5++(1),r3,r4
  18.         addi3   *ar5--(1),r3,r4
  19.         addi3   *ar5++(1)%,r3,r4
  20.         addi3   *ar5--(1)%,r3,r4
  21.         addi3   *ar5(ir0),r3,r4
  22.         addi3   *-ar5(ir0),r3,r4
  23.         addi3   *++ar5(ir0),r3,r4
  24.         addi3   *--ar5(ir0),r3,r4
  25.         addi3   *ar5++(ir0),r3,r4
  26.         addi3   *ar5--(ir0),r3,r4
  27.         addi3   *ar5++(ir0)%,r3,r4
  28.         addi3   *ar5--(ir0)%,r3,r4
  29.         addi3   *ar5(ir1),r3,r4
  30.         addi3   *-ar5(ir1),r3,r4
  31.         addi3   *++ar5(ir1),r3,r4
  32.         addi3   *--ar5(ir1),r3,r4
  33.         addi3   *ar5++(ir1),r3,r4
  34.         addi3   *ar5--(ir1),r3,r4
  35.         addi3   *ar5++(ir1)%,r3,r4
  36.         addi3   *ar5--(ir1)%,r3,r4
  37.         addi3   *ar5,r3,r4
  38.         addi3   *ar5++(ir0)b,r3,r4
  39.  
  40.         ; type 2 instr
  41.  
  42.         addi    23,r3,r4
  43.         addi    *+ar5(23),r3,r4
  44.         addi    23,*+ar5(23),r4
  45.         addi    *+ar2(25),*+ar5(23),r4
  46.  
  47.         ; test all registers!
  48.  
  49.         addi    die,r11,r9
  50.  
  51.  
  52.         ; new instructions
  53.  
  54.         irp     op,mpyshi,mpyuhi
  55.         op      r9,r10
  56.         op      @1234,r10
  57.         op      *+ar5(22),r10
  58.         op      35,r10
  59.         op      r4,r5,r10
  60.         op      r4,*++ar5(1),r10
  61.         op      *++ar4(1),r5,r10
  62.         op      *++ar4(1),*++ar5(1),r10
  63.         op      4,r5,r10
  64.         op      *+ar4(10),r5,r10
  65.         op      4,*+ar5(10),r10
  66.         op      *+ar4(10),*+ar5(10),r10
  67.         endm
  68.  
  69.         irp     op,lb0,lb1,lb2,lb3,lbu0,lbu1,lbu2,lbu3,lh0,lh1,lhu0,lhu1
  70.         op      r10,r4
  71.         op      @1234,r10
  72.         op      *++ar5(1),ar2
  73.         op      42,rs
  74.         endm
  75.  
  76.         lda     r4,ar2
  77.         lda     @1234h,ar2
  78.         lda     *ar0,ar2
  79.         lda     1234,ar2
  80.         ;lda    r0,r2           ; not allowed since dest register must be address register
  81.         ;lda    ar2,ar2         ; not allowed since src & dest may not use same register
  82.         ;lda    *ar2,ar2        ; ditto
  83.         ;lda    *ar5(ir0),ir0   ; ditto
  84.         ;lda    *ar5(ir1),ir1   ; ditto
  85.         ;lda    *ar5++(ir0)b,ir0; ditto
  86.  
  87.         ldep    ivtp,ar5
  88.         ldpe    ar5,tvtp
  89.  
  90.         ldhi    44h,r2
  91.  
  92.         ldpk    2000h
  93.  
  94.         stik    10,@2000h
  95.         stik    -10,*ar5
  96.  
  97.         irp     op,lwl0,lwl1,lwl2,lwl3,lwr0,lwr1,lwr2,lwr3
  98.         op      r10,r4
  99.         op      @1234,r10
  100.         op      *++ar5(1),ar2
  101.         op      42,rs
  102.         endm
  103.  
  104.         irp     op,mb0,mb1,mb2,mb3,mh0,mh1
  105.         op      r10,r4
  106.         op      @1234,r10
  107.         op      *++ar5(1),ar2
  108.         op      42,rs
  109.         endm
  110.  
  111.         irp     op,rcpf,rsqrf
  112.         op      r10,r4
  113.         op      @1234h,r10
  114.         op      *++ar5(1),ar2
  115.         op      2.0,r4
  116.         endm
  117.  
  118.         retine
  119.         retined
  120.         retsne
  121.  
  122.         bne     $+5
  123.         bned    $+5
  124.         bneaf   $+5
  125.         bneat   $+5
  126.  
  127.         ; CALL/BR/BRD take displacement instead of absolute address on C4x!
  128.  
  129.         br      $+5
  130.         brd     $+5
  131.         call    $+5
  132.         laj     $+5
  133.  
  134.         ; similar for RPTB, except that it now also accepts an address from a register
  135.  
  136.         rptb    ar2
  137.         rptb    $+5
  138.  
  139.         lajne   ar4
  140.         lajne   $+5
  141.  
  142.         ; TRAP (and LATcc) vectors now have 9 bits
  143.  
  144.         trapne  127
  145.         latne   127
  146.  
  147.         frieee  @1234h,r2
  148.         frieee  *ar5,r2
  149.  
  150.         toieee  r3,r2
  151.         toieee  @1234h,r2
  152.         toieee  *ar5,r2
  153.         toieee  2.0,r2
  154.  
  155.         frieee  *++ar5,r4
  156. ||      stf     r6,*++ar6
  157.         stf     r6,*++ar6
  158. ||      frieee  *++ar5,r4
  159.  
  160.         toieee  *++ar5,r4
  161. ||      stf     r6,*++ar6
  162.         stf     r6,*++ar6
  163. ||      toieee  *++ar5,r4
  164.