#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);

#include <stdio.h>

#if defined _WIN32 && !defined __TINYC__
# define _ "_"
#else
# define _
#endif

static int x1_c(void)
{
    printf("x1\n");
    return 1;
}

asm(".text;"_"x1: call "_"x1_c; ret");

int main(int argc, char *argv[])
{
    asm("call "_"x1");
    asm("call "_"x2");
    asm("call "_"x3");
    return 0;
}

static
int x2(void)
{
    printf("x2\n");
    return 2;
}

extern int x3(void);

Adjust asm-c-connect testcase for Windows
Adjust asm-c-connect testcase for Windows

Calling conventions are different, let's use functions without
any arguments.
