qemu

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

test_lf_les.c (1527B)


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