diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-08-13 12:10:59 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-08-13 12:10:59 +0100 |
commit | cc778767f309290f897095553c7553e8729dabea (patch) | |
tree | ee48ea1cde6e7d021b7d82b277b19957ad1e8398 /app-emulation/wine-any/files/pr66838.c | |
parent | 10ef6fb8d030ed82425a1a8c2eb903d7fa432ecd (diff) |
app-emulation/wine -> app-emulation/wine-any
Diffstat (limited to 'app-emulation/wine-any/files/pr66838.c')
-rw-r--r-- | app-emulation/wine-any/files/pr66838.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app-emulation/wine-any/files/pr66838.c b/app-emulation/wine-any/files/pr66838.c new file mode 100644 index 00000000..cd616859 --- /dev/null +++ b/app-emulation/wine-any/files/pr66838.c @@ -0,0 +1,36 @@ +/* From gcc svn, /branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr66838.c */ +/* Copyrighted and distributed under the same terms as gcc */ + +void abort (void); + +char global; + +__attribute__((sysv_abi, noinline, noclone)) +void sysv_abi_func(char const *desc, void *local) +{ + register int esi asm ("esi"); + register int edi asm ("edi"); + + if (local != &global) + abort (); + + /* Clobber some of the extra SYSV ABI registers. */ + asm volatile ("movl\t%2, %0\n\tmovl\t%2, %1" + : "=r" (esi), "=r" (edi) + : "i" (0xdeadbeef)); +} + +__attribute__((ms_abi, noinline, noclone)) +void ms_abi_func () +{ + sysv_abi_func ("1st call", &global); + sysv_abi_func ("2nd call", &global); + sysv_abi_func ("3rd call", &global); +} + +int +main(void) +{ + ms_abi_func(); + return 0; +} |