qemu

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

test_lf_ges.c (1580B)


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