diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c index 3ad5cabe5e9..13596a46fe2 100644 --- a/tools/winebuild/import.c +++ b/tools/winebuild/import.c @@ -1270,6 +1270,23 @@ void output_stubs( DLLSPEC *spec ) if (exp_name) output( "\t.long .L%s_string-2b\n", name ); else output( "\t.long %u\n", odp->ordinal ); break; + case CPU_ARM64: + output( "\tadr x0, 2f\n" ); + output( "\tldur x0, [x0, #0]\n" ); + output( "\tadr x1, 2f+8\n" ); + output( "\tldur x1, [x1, #0]\n" ); + output( "\tadr x2, 1f\n" ); + output( "\tldur x2, [x2, #0]\n" ); + output( "\tblr x2\n" ); + output( "1:\t.quad %s\n", asm_name("__wine_spec_unimplemented_stub") ); + output( "2:\t.quad %s\n", asm_name("__wine_spec_file_name") ); + if (exp_name) + { + output( "\t.quad .L%s_string\n", name ); + count++; + } + else output( "\t.quad %u\n", odp->ordinal ); + break; default: assert(0); } diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c index bae2b47c150..9252ee8f31c 100644 --- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -403,9 +403,9 @@ static int parse_spec_stub( ORDDEF *odp, DLLSPEC *spec ) odp->link_name = xstrdup(""); /* don't bother generating stubs for Winelib */ if (odp->flags & FLAG_CPU_MASK) - odp->flags &= FLAG_CPU(CPU_x86) | FLAG_CPU(CPU_x86_64) | FLAG_CPU(CPU_ARM); + odp->flags &= FLAG_CPU(CPU_x86) | FLAG_CPU(CPU_x86_64) | FLAG_CPU(CPU_ARM) | FLAG_CPU(CPU_ARM64); else - odp->flags |= FLAG_CPU(CPU_x86) | FLAG_CPU(CPU_x86_64) | FLAG_CPU(CPU_ARM); + odp->flags |= FLAG_CPU(CPU_x86) | FLAG_CPU(CPU_x86_64) | FLAG_CPU(CPU_ARM) | FLAG_CPU(CPU_ARM64); return parse_spec_arguments( odp, spec, 1 ); }