mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-30 04:48:36 +00:00
widl: Pass 16-byte structures by value on ARM64.
This commit is contained in:
parent
cc88d9175b
commit
9cda4233df
|
@ -431,7 +431,18 @@ static unsigned int get_stack_size( const var_t *var, int *by_value )
|
|||
case TGT_UNION:
|
||||
case TGT_USER_TYPE:
|
||||
stack_size = type_memsize( var->declspec.type );
|
||||
by_val = (pointer_size < 8 || stack_size <= pointer_size); /* FIXME: should be platform-specific */
|
||||
switch (target.cpu)
|
||||
{
|
||||
case CPU_x86_64:
|
||||
by_val = (stack_size <= pointer_size);
|
||||
break;
|
||||
case CPU_ARM64:
|
||||
by_val = (stack_size <= 2 * pointer_size);
|
||||
break;
|
||||
default:
|
||||
by_val = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
by_val = 0;
|
||||
|
|
|
@ -89,7 +89,7 @@ static const char usage[] =
|
|||
static const char version_string[] = "Wine IDL Compiler version " PACKAGE_VERSION "\n"
|
||||
"Copyright 2002 Ove Kaaven\n";
|
||||
|
||||
static struct target target;
|
||||
struct target target = { 0 };
|
||||
|
||||
int debuglevel = DEBUGLEVEL_NONE;
|
||||
int parser_debug, yy_flex_debug;
|
||||
|
|
|
@ -71,6 +71,7 @@ extern const char *prefix_client;
|
|||
extern const char *prefix_server;
|
||||
extern unsigned int packing;
|
||||
extern unsigned int pointer_size;
|
||||
extern struct target target;
|
||||
extern time_t now;
|
||||
|
||||
extern int open_typelib( const char *name );
|
||||
|
|
Loading…
Reference in a new issue