qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

test_lf_eqs.c (1486B)


      1 #include <stdio.h>
      2 
      3 int main(void)
      4 {
      5     int a, result;
      6     float b, c;
      7 
      8     a = 0x1;
      9     b = 122.5;
     10     c = 123.5;
     11     result = 0x3;
     12     __asm
     13     ("lfeqd:\n\t"
     14      "l.addi    %0, %0, 0x1\n\t"
     15      "lf.sfeq.s %1, %2\n\t"
     16      "l.bf      lfeqd\n\t"
     17      "l.nop\n\t"
     18      "l.addi    %0, %0, 0x1\n\t"
     19      : "+r"(a)
     20      : "r"(b), "r"(c)
     21     );
     22     if (a != result) {
     23         printf("lf.sfeq.s error\n");
     24         return -1;
     25     }
     26 
     27     b = 13.5;
     28     c = 13.5;
     29     result = 0x3;
     30     __asm
     31     ("lf.sfeq.s %1, %2\n\t"
     32      "l.bf      1f\n\t"
     33      "l.nop\n\t"
     34      "l.addi    r4, r4, 0x1\n\t"
     35      "1:\n\t"
     36      : "+r"(a)
     37      : "r"(b), "r"(c)
     38     );
     39     if (a != result) {
     40         printf("lf.sfeq.s error\n");
     41         return -1;
     42     }
     43 
     44 /*    double b, c;
     45     double result;
     46     int a;
     47 
     48     a = 0x1;
     49     b = 122.5;
     50     c = 133.5;
     51     result = 0x3;
     52 
     53     __asm
     54     ("lfeqd:\n\t"
     55      "l.addi %0, %0, 0x1\n\t"
     56      "lf.sfeq.d %1, %2\n\t"
     57      "l.bf      lfeqd\n\t"
     58      "l.nop\n\t"
     59      "l.addi    %0, %0, 0x1\n\t"
     60      : "+r"(a)
     61      : "r"(b), "r"(c)
     62     );
     63     if (a != result) {
     64         printf("lf.sfeq.d error\n");
     65         return -1;
     66     }
     67 
     68     double c, d, res;
     69     int e = 0;
     70     c = 11.5;
     71     d = 11.5;
     72     res = 1;
     73     __asm
     74     ("lf.sfeq.d %1, %2\n\t"
     75      "l.bf      1f\n\t"
     76      "l.nop\n\t"
     77      "l.addi    %0, %0, 0x1\n\t"
     78      "1:\n\t"
     79      : "+r"(e)
     80      : "r"(c), "r"(d)
     81     );
     82     if (e != res) {
     83         printf("lf.sfeq.d error\n");
     84         return -1;
     85     }*/
     86 
     87     return 0;
     88 }