cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

test_rem.S (2900B)


      1#include "macros.inc"
      2
      3test_suite rem
      4
      5#if XCHAL_HAVE_DIV32
      6
      7test remu_pp
      8    movi    a2, 0x5a5a137f
      9    mov     a3, a2
     10    movi    a4, 0x137f5a5a
     11    movi    a6, 0x0c5caa17
     12    remu    a5, a2, a4
     13    assert  eq, a5, a6
     14    remu    a2, a2, a4
     15    assert  eq, a2, a6
     16    remu    a4, a3, a4
     17    assert  eq, a4, a6
     18test_end
     19
     20test remu_np
     21    movi    a2, 0xa5a5137f
     22    mov     a3, a2
     23    movi    a4, 0x137f5a5a
     24    movi    a6, 0x9aa40af
     25    remu    a5, a2, a4
     26    assert  eq, a5, a6
     27    remu    a2, a2, a4
     28    assert  eq, a2, a6
     29    remu    a4, a3, a4
     30    assert  eq, a4, a6
     31test_end
     32
     33test remu_pn
     34    movi    a2, 0x5a5a137f
     35    mov     a3, a2
     36    movi    a4, 0xf7315a5a
     37    movi    a6, 0x5a5a137f
     38    remu    a5, a2, a4
     39    assert  eq, a5, a6
     40    remu    a2, a2, a4
     41    assert  eq, a2, a6
     42    remu    a4, a3, a4
     43    assert  eq, a4, a6
     44test_end
     45
     46test remu_nn
     47    movi    a2, 0xf7315a5a
     48    mov     a3, a2
     49    movi    a4, 0xa5a5137f
     50    movi    a6, 0x518c46db
     51    remu    a5, a2, a4
     52    assert  eq, a5, a6
     53    remu    a2, a2, a4
     54    assert  eq, a2, a6
     55    remu    a4, a3, a4
     56    assert  eq, a4, a6
     57test_end
     58
     59test remu_exc
     60    set_vector kernel, 2f
     61    movi    a2, 0xf7315a5a
     62    movi    a4, 0x00000000
     631:
     64    remu    a5, a2, a4
     65    test_fail
     662:
     67    rsr     a2, exccause
     68    assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
     69    rsr     a2, epc1
     70    movi    a3, 1b
     71    assert  eq, a2, a3
     72test_end
     73
     74test rems_pp
     75    movi    a2, 0x5a5a137f
     76    mov     a3, a2
     77    movi    a4, 0x137f5a5a
     78    movi    a6, 0x0c5caa17
     79    rems    a5, a2, a4
     80    assert  eq, a5, a6
     81    rems    a2, a2, a4
     82    assert  eq, a2, a6
     83    rems    a4, a3, a4
     84    assert  eq, a4, a6
     85test_end
     86
     87test rems_np
     88    movi    a2, 0xa5a5137f
     89    mov     a3, a2
     90    movi    a4, 0x137f5a5a
     91    movi    a6, 0xf3a27ce7
     92    rems    a5, a2, a4
     93    assert  eq, a5, a6
     94    rems    a2, a2, a4
     95    assert  eq, a2, a6
     96    rems    a4, a3, a4
     97    assert  eq, a4, a6
     98test_end
     99
    100test rems_pn
    101    movi    a2, 0x5a5a137f
    102    mov     a3, a2
    103    movi    a4, 0xf7315a5a
    104    movi    a6, 0x02479b03
    105    rems    a5, a2, a4
    106    assert  eq, a5, a6
    107    rems    a2, a2, a4
    108    assert  eq, a2, a6
    109    rems    a4, a3, a4
    110    assert  eq, a4, a6
    111test_end
    112
    113test rems_nn
    114    movi    a2, 0xf7315a5a
    115    mov     a3, a2
    116    movi    a4, 0xa5a5137f
    117    movi    a6, 0xf7315a5a
    118    rems    a5, a2, a4
    119    assert  eq, a5, a6
    120    rems    a2, a2, a4
    121    assert  eq, a2, a6
    122    rems    a4, a3, a4
    123    assert  eq, a4, a6
    124test_end
    125
    126test rems_over
    127    movi    a2, 0x80000000
    128    movi    a4, 0xffffffff
    129    movi    a6, 0
    130    rems    a5, a2, a4
    131    assert  eq, a5, a6
    132test_end
    133
    134test rems_exc
    135    set_vector kernel, 2f
    136    movi    a2, 0xf7315a5a
    137    movi    a4, 0x00000000
    1381:
    139    rems    a5, a2, a4
    140    test_fail
    1412:
    142    rsr     a2, exccause
    143    assert  eqi, a2, 6 /* INTEGER_DIVIDE_BY_ZERO_CAUSE */
    144    rsr     a2, epc1
    145    movi    a3, 1b
    146    assert  eq, a2, a3
    147test_end
    148
    149#endif
    150
    151test_suite_end