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_div.c (810B)


      1#include <stdio.h>
      2
      3int main(void)
      4{
      5    int a, b, c;
      6    int result;
      7
      8    b = 0x120;
      9    c = 0x4;
     10    result = 0x48;
     11    __asm
     12    ("l.div  %0, %1, %2\n\t"
     13     : "=r"(a)
     14     : "r"(b), "r"(c)
     15    );
     16    if (a != result) {
     17        printf("div error\n");
     18        return -1;
     19    }
     20
     21    result = 0x4;
     22    __asm
     23    ("l.div %0, %1, %0\n\t"
     24     : "+r"(a)
     25     : "r"(b)
     26    );
     27    if (a != result) {
     28        printf("div error\n");
     29        return -1;
     30    }
     31
     32    b = 0xffffffff;
     33    c = 0x80000000;
     34    result = 0;
     35    __asm
     36    ("l.div %0, %1, %2\n\t"
     37     : "=r"(a)
     38     : "r"(b), "r"(c)
     39    );
     40    if (a != result) {
     41        printf("div error\n");
     42        return -1;
     43    }
     44
     45    b = 0x80000000;
     46    c = 0xffffffff;
     47    __asm
     48    ("l.div %0, %1, %2\n\t"
     49     : "=r"(a)
     50     : "r"(b), "r"(c)
     51    );
     52
     53    return 0;
     54}