asm: Separate .def/.scl/.type/.endef with newlines instead of semicolons.

When targeting arm64 in MSVC mode, LLVM treats semicolons in assembly
as comment char, instead of as statement separator (contrary to in
mingw mode, where semicolons still work as separator). In generated code,
there's no need to keep these directives on one single line though, so
just separate them with newlines.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Martin Storsjo 2020-12-19 00:34:34 +02:00 committed by Alexandre Julliard
parent 5befc694fa
commit e9fa452ba3
2 changed files with 3 additions and 3 deletions

View file

@ -56,7 +56,7 @@
#endif
#ifdef _WIN32
# define __ASM_FUNC_TYPE(name) ".def " name "; .scl 2; .type 32; .endef"
# define __ASM_FUNC_TYPE(name) ".def " name "\n\t.scl 2\n\t.type 32\n\t.endef"
#elif defined(__APPLE__)
# define __ASM_FUNC_TYPE(name) ""
#elif defined(__arm__) || defined(__arm64__)

View file

@ -686,7 +686,7 @@ void output_standard_file_header(void)
output( "/* This file can be copied, modified and distributed without restriction. */\n\n" );
if (safe_seh)
{
output( "\t.def @feat.00; .scl 3; .type 0; .endef\n" );
output( "\t.def @feat.00\n\t.scl 3\n\t.type 0\n\t.endef\n" );
output( "\t.globl @feat.00\n" );
output( ".set @feat.00, 1\n" );
}
@ -1119,7 +1119,7 @@ const char *func_declaration( const char *func )
return "";
case PLATFORM_WINDOWS:
free( buffer );
buffer = strmake( ".def %s; .scl 2; .type 32; .endef", asm_name(func) );
buffer = strmake( ".def %s\n\t.scl 2\n\t.type 32\n\t.endef", asm_name(func) );
break;
default:
free( buffer );