qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

test_sar.S (1620B)


      1 #include "macros.inc"
      2 
      3 test_suite sar
      4 
      5 .macro test_sar prefix, imm
      6     \prefix\()_set \imm
      7     \prefix\()_ver \imm
      8 .endm
      9 
     10 .macro tests_sar prefix
     11     test_sar \prefix, 0
     12     test_sar \prefix, 1
     13     test_sar \prefix, 2
     14     test_sar \prefix, 3
     15     test_sar \prefix, 0x1f
     16     test_sar \prefix, 0x20
     17     test_sar \prefix, 0x3f
     18     test_sar \prefix, 0x40
     19     test_sar \prefix, 0xfffffffe
     20 .endm
     21 
     22 .macro sar_set imm
     23     movi    a2, \imm
     24     wsr     a2, sar
     25 .endm
     26 
     27 .macro sar_ver imm
     28     rsr     a3, sar
     29     movi    a2, \imm & 0x3f
     30     assert  eq, a2, a3
     31 .endm
     32 
     33 test sar
     34     tests_sar sar
     35 test_end
     36 
     37 .macro ssr_set imm
     38     movi    a2, \imm
     39     ssr     a2
     40 .endm
     41 
     42 .macro ssr_ver imm
     43     rsr     a3, sar
     44     movi    a2, \imm & 0x1f
     45     assert  eq, a2, a3
     46 .endm
     47 
     48 test ssr
     49     tests_sar ssr
     50 test_end
     51 
     52 .macro ssl_set imm
     53     movi    a2, \imm
     54     ssl     a2
     55 .endm
     56 
     57 .macro ssl_ver imm
     58     rsr     a3, sar
     59     movi    a2, 32 - (\imm & 0x1f)
     60     assert  eq, a2, a3
     61 .endm
     62 
     63 test ssl
     64     tests_sar ssl
     65 test_end
     66 
     67 .macro ssa8l_set imm
     68     movi    a2, \imm
     69     ssa8l   a2
     70 .endm
     71 
     72 .macro ssa8l_ver imm
     73     rsr     a3, sar
     74     movi    a2, (\imm & 0x3) << 3
     75     assert  eq, a2, a3
     76 .endm
     77 
     78 test ssa8l
     79     tests_sar ssa8l
     80 test_end
     81 
     82 .macro ssa8b_set imm
     83     movi    a2, \imm
     84     ssa8b   a2
     85 .endm
     86 
     87 .macro ssa8b_ver imm
     88     rsr     a3, sar
     89     movi    a2, 32 - ((\imm & 0x3) << 3)
     90     assert  eq, a2, a3
     91 .endm
     92 
     93 test ssa8b
     94     tests_sar ssa8b
     95 test_end
     96 
     97 .macro ssai_set imm
     98     ssai    \imm & 0x1f
     99 .endm
    100 
    101 .macro ssai_ver imm
    102     rsr     a3, sar
    103     movi    a2, \imm & 0x1f
    104     assert  eq, a2, a3
    105 .endm
    106 
    107 test ssai
    108     tests_sar ssai
    109 test_end
    110 
    111 test_suite_end