Home | History | Annotate | Line # | Download | only in mips
      1 # mips64 specific r6 tests (non FPU)
      2 # mach:  mips64r6
      3 # as:    -mabi=eabi
      4 # ld:    -N -Ttext=0x80010000 -Tdata=0x80020000
      5 # output: *\\npass\\n
      6 
      7   .include "testutils.inc"
      8   .include "utils-r6.inc"
      9 
     10   .data
     11 d0:   .dword 0
     12 dval: .dword 0xaa55bb66cc77dd88
     13 d1:   .dword 0xaaaabbbbccccdddd
     14 d2:   .dword 256
     15 dlo:  .dword 0xaabbbbccccdddd00
     16 dhi:  .dword 0xffffffffffffffaa
     17 dhiu: .dword 0x00000000000000aa
     18 d3:   .dword 0xffaaaabbbbccccde
     19 d4:   .dword 0xffffffffffffffdd
     20 d5:   .dword 0x00000000000000dd
     21 d6:   .dword 0x00aaaabbbbccccdd
     22 d7:   .dword 0xeeeeffff00001111
     23 d8:   .dword 0xbbccccddddeeeeff
     24 d9:   .dword 0x000000ddaaaabbbb
     25 d10:  .dword 0x5555dddd3333bbbb
     26 d11:  .dword 0x9999999999999999
     27 d12:  .dword 56
     28 d13:  .dword 8
     29 d14:  .dword 57
     30 d15:  .dword 0x000000ddaaaac98b
     31 d16:  .dword 0xffffffffdead00dd
     32 d17:  .dword 0xffffffffc0de0000
     33 d18:  .dword 0x0000123400000000
     34 d19:  .dword 0xffffabcddead00dd
     35 d20:  .dword 0xc0de000000000000
     36 d21:  .dword 0x8000abcddead00dd
     37 dmask:.dword 0xffffffffffff0000
     38 dval1: .word 0x1234abcd
     39 dval2: .word 0xffee0000
     40 dval3:	.dword 0xffffffffffffffff
     41   .fill 240,1,0
     42 dval4:	.dword 0x5555555555555555
     43   .fill  264,1,0
     44 dval5:	.dword 0xaaaaaaaaaaaaaaaa
     45 
     46   .text
     47 
     48   setup
     49 
     50   .set noreorder
     51 
     52   .ent DIAG
     53 DIAG:
     54 
     55   writemsg "[1] Test DMUL"
     56   r6ck_2r dmul, 6, 5, 30
     57   r6ck_2r dmul, -7, 9, -63
     58   r6ck_2r dmul, -1, 1, -1
     59   r6ck_2dr dmul, d1, d2, dlo
     60 
     61   writemsg "[2] Test DMUH"
     62   r6ck_2r dmuh, 6, 5, 0
     63   r6ck_2r dmuh, -7, 9, 0xffffffffffffffff
     64   r6ck_2r dmuh, -1, 1, -1
     65   r6ck_2dr dmuh, d1, d2, dhi
     66 
     67   writemsg "[3] Test DMULU"
     68   r6ck_2r dmulu, 12, 10, 120
     69   r6ck_2r dmulu, -1, 1, -1
     70   r6ck_2dr dmulu, d1, d2, dlo
     71 
     72   writemsg "[4] Test DMUHU"
     73   r6ck_2r dmuhu, 12, 10, 0
     74   r6ck_2r dmuhu, -1, 1, 0
     75   r6ck_2dr dmuhu, d1, d2, dhiu
     76 
     77   writemsg "[5] Test DDIV"
     78   r6ck_2r ddiv, 10001, 10, 1000
     79   r6ck_2r ddiv, -123456, 560, -220
     80   r6ck_2dr ddiv, d1, d2, d3
     81 
     82   writemsg "[6] Test DMOD"
     83   r6ck_2r dmod, 10001, 10, 1
     84   r6ck_2r dmod, -123456, 560, 0xffffffffffffff00
     85   r6ck_2dr dmod, d1, d2, d4
     86 
     87   writemsg "[7] Test DDIVU"
     88   r6ck_2r ddivu, 9, 100, 0
     89   r6ck_2dr ddivu, d1, d2, d6
     90 
     91   writemsg "[8] Test DMODU"
     92   r6ck_2r dmodu, 9, 100, 9
     93   r6ck_2dr dmodu, d1, d2, d5
     94 
     95   writemsg "[9] Test DALIGN"
     96   r6ck_2dr1i dalign, d7, d1, 3, d8
     97   r6ck_2dr1i dalign, d1, d5, 4, d9
     98 
     99   writemsg "[10] Test DBITSWAP"
    100   r6ck_1dr dbitswap, d1, d10
    101   r6ck_1dr dbitswap, d11, d11
    102 
    103   writemsg "[11] Test DCLZ"
    104   r6ck_1dr dclz, d5, d12
    105   r6ck_1dr dclz, d6, d13
    106 
    107   writemsg "[12] Test DCLO"
    108   r6ck_1dr dclo, d5, d0
    109   r6ck_1dr dclo, dhi, d14
    110 
    111   writemsg "[13] Test DLSA"
    112   r6ck_2r1i dlsa, 0x82, 0x2000068, 4, 0x2000888
    113   r6ck_2dr1i dlsa, d5, d9, 4, d15
    114 
    115   writemsg "[14] Test DAUI"
    116   r6ck_1dr1i daui, d5, 0xdead, d16
    117   r6ck_1dr1i daui, d0, 0xc0de, d17
    118 
    119   writemsg "[15] Test DAHI"
    120   r6ck_0dr1i dahi, d0, 0x1234, d18
    121   r6ck_0dr1i dahi, d16, 0xabce, d19
    122 
    123   writemsg "[16] Test DATI"
    124   r6ck_0dr1i dati, d0, 0xc0de, d20
    125   r6ck_0dr1i dati, d19, 0x8001, d21
    126 
    127   writemsg "[17] Test LDPC"
    128   ld $5, dval
    129   nop
    130   ldpc $4, dval
    131   fp_assert $4, $5
    132 
    133   writemsg "[18] Test LWUPC"
    134   lwu $5, dval1
    135   lwupc $4, dval1
    136   fp_assert $4, $5
    137   lwu $5, dval2
    138   lwupc $4, dval2
    139   fp_assert $4, $5
    140 
    141   writemsg "[19] Test LLD"
    142   ld $5, dval3
    143   dla $3, dval4
    144   lld $4, -248($3)
    145   fp_assert $4, $5
    146 
    147   writemsg "[20] Test SCD"
    148   lld $4, -248($3)
    149   dli $4, 0xafaf
    150   scd $4, -248($3)
    151   ld $5, dval3
    152   dli $4, 0xafaf
    153   fp_assert $4, $5
    154 
    155   pass
    156 
    157   .end DIAG
    158