#undef _GNU_SOURCE #define _GNU_SOURCE 1 #undef __USE_GNU #define __USE_GNU 1 #include #include #include #include #include #include #include #include #include #define TEST(insn) \ long double __attribute__((noinline)) insn(long flags) \ { \ long double out; \ asm ("\n" \ " push %1""\n" \ " popf""\n" \ " fldpi""\n" \ " fld1""\n" \ " " #insn " %%st(1), %%st" "\n" \ " ffree %%st(1)" "\n" \ : "=t" (out) \ : "r" (flags) \ ); \ return out; \ } TEST(fcmovb) TEST(fcmove) TEST(fcmovbe) TEST(fcmovu) TEST(fcmovnb) TEST(fcmovne) TEST(fcmovnbe) TEST(fcmovnu) enum { CF = 1 << 0, PF = 1 << 2, ZF = 1 << 6, }; void sighandler(int sig) { printf("[FAIL]\tGot signal %d, exiting\n", sig); exit(1); } int main(int argc, char **argv, char **envp) { int err = 0; /* SIGILL triggers on 32-bit kernels w/o fcomi emulation * when run with "no387 nofxsr". Other signals are caught * just in case. */ signal(SIGILL, sighandler); signal(SIGFPE, sighandler); signal(SIGSEGV, sighandler); printf("[RUN]\tTesting fcmovCC instructions\n"); /* If fcmovCC() returns 1.0, the move wasn't done */ err |= !(fcmovb(0) == 1.0); err |= !(fcmovnb(0) != 1.0); err |= !(fcmove(0) == 1.0); err |= !(fcmovne(0) != 1.0); err |= !(fcmovbe(0) == 1.0); err |= !(fcmovnbe(0) != 1.0); err |= !(fcmovu(0) == 1.0); err |= !(fcmovnu(0) != 1.0); err |= !(fcmovb(CF) != 1.0); err |= !(fcmovnb(CF) == 1.0); err |= !(fcmove(CF) == 1.0); err |= !(fcmovne(CF) != 1.0); err |= !(fcmovbe(CF) != 1.0); err |= !(fcmovnbe(CF) == 1.0); err |= !(fcmovu(CF) == 1.0); err |= !(fcmovnu(CF) != 1.0); err |= !(fcmovb(ZF) == 1.0); err |= !(fcmovnb(ZF) != 1.0); err |= !(fcmove(ZF) != 1.0); err |= !(fcmovne(ZF) == 1.0); err |= !(fcmovbe(ZF) != 1.0); err |= !(fcmovnbe(ZF) == 1.0); err |= !(fcmovu(ZF) == 1.0); err |= !(fcmovnu(ZF) != 1.0); err |= !(fcmovb(PF) == 1.0); err |= !(fcmovnb(PF) != 1.0); err |= !(fcmove(PF) == 1.0); err |= !(fcmovne(PF) != 1.0); err |= !(fcmovbe(PF) == 1.0); err |= !(fcmovnbe(PF) != 1.0); err |= !(fcmovu(PF) != 1.0); err |= !(fcmovnu(PF) == 1.0); if (!err) printf("[OK]\tfcmovCC\n"); else printf("[FAIL]\tfcmovCC errors: %d\n", err); return err; } on='/cgit.cgi/linux/net-next.git/log/sound/isa/wavefront/Makefile'>
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2017-01-29 15:07:34 +0300
committerDavid S. Miller <davem@davemloft.net>2017-01-30 22:05:43 -0500
commit1a0bee6c1e788218fd1d141db320db970aace7f0 (patch)
tree46c4116bc8ef4a7df718516a648597d9e21c15f1 /sound/isa/wavefront/Makefile
parent63c190429020a9701b42887ac22c28f287f1762f (diff)
sh_eth: rename EESIPR bits
Since the commit b0ca2a21f769 ("sh_eth: Add support of SH7763 to sh_eth") the *enum* declaring the EESIPR bits (interrupt mask) went out of sync with the *enum* declaring the EESR bits (interrupt status) WRT bit naming and formatting. I'd like to restore the consistency by using EESIPR as the bit name prefix, renaming the *enum* to EESIPR_BIT, and (finally) renaming the bits according to the available Renesas SH77{34|63} manuals; additionally, reconstruct couple names using the EESR bit declaration above... Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'sound/isa/wavefront/Makefile')