diff options
Diffstat (limited to 'tests/asm-c-connect-1.c')
| -rw-r--r-- | tests/asm-c-connect-1.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/asm-c-connect-1.c b/tests/asm-c-connect-1.c new file mode 100644 index 0000000..3f7b010 --- /dev/null +++ b/tests/asm-c-connect-1.c @@ -0,0 +1,31 @@ +#include <stdio.h> + +#if defined _WIN32 && !defined __TINYC__ +# define U "_" +#else +# define U +#endif + +const char str[] = "x1\n"; +#ifdef __x86_64__ +asm(U"x1: push %rbp; mov $"U"str, %rdi; call "U"printf; pop %rbp; ret"); +#elif defined (__i386__) +asm(U"x1: push $"U"str; call "U"printf; pop %eax; ret"); +#endif + +int main(int argc, char *argv[]) +{ + asm("call "U"x1"); + asm("call "U"x2"); + asm("call "U"x3"); + return 0; +} + +static +int x2(void) +{ + printf("x2\n"); + return 2; +} + +extern int x3(void); |
