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_sar.S (1620B)


      1#include "macros.inc"
      2
      3test_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
     33test sar
     34    tests_sar sar
     35test_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
     48test ssr
     49    tests_sar ssr
     50test_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
     63test ssl
     64    tests_sar ssl
     65test_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
     78test ssa8l
     79    tests_sar ssa8l
     80test_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
     93test ssa8b
     94    tests_sar ssa8b
     95test_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
    107test ssai
    108    tests_sar ssai
    109test_end
    110
    111test_suite_end