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_mul.c (939B)


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