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_bnf.c (802B)


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