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_dsp_r1_addq_ph.c (837B)


      1#include<stdio.h>
      2#include<assert.h>
      3
      4int main()
      5{
      6    int rd, rs, rt;
      7    int dsp;
      8    int result;
      9
     10    rs     = 0xFFFFFFFF;
     11    rt     = 0x10101010;
     12    result = 0x100F100F;
     13    __asm
     14        ("addq.ph   %0, %1, %2\n\t"
     15         : "=r"(rd)
     16         : "r"(rs), "r"(rt)
     17        );
     18    assert(result == rd);
     19
     20    rs     = 0x3712847D;
     21    rt     = 0x0031AF2D;
     22    result = 0x374333AA;
     23    __asm
     24        ("addq.ph   %0, %1, %2\n\t"
     25         : "=r"(rd)
     26         : "r"(rs), "r"(rt)
     27        );
     28    assert(result == rd);
     29
     30    rs     = 0x7fff847D;
     31    rt     = 0x0031AF2D;
     32    result = 0x803033AA;
     33    __asm
     34        ("addq.ph   %0, %1, %2\n\t"
     35         : "=r"(rd)
     36         : "r"(rs), "r"(rt)
     37        );
     38    assert(result == rd);
     39
     40    __asm("rddsp %0\n\t"
     41          : "=r"(dsp)
     42         );
     43    assert(((dsp >> 20) & 0x01) == 1);
     44
     45    return 0;
     46}