Commit e4a04835 authored by Alexandre Julliard's avatar Alexandre Julliard

widl: Set a correct fpu parameter mask on 64-bit.

parent d9cd0d8c
...@@ -1353,7 +1353,24 @@ static void write_proc_func_header( FILE *file, int indent, const type_t *iface, ...@@ -1353,7 +1353,24 @@ static void write_proc_func_header( FILE *file, int indent, const type_t *iface,
*offset += 14; *offset += 14;
if (pointer_size == 8) if (pointer_size == 8)
{ {
print_file( file, indent, "NdrFcShort(0x0),\n" ); /* floating point mask */ unsigned short pos = 0, fpu_mask = 0;
if (is_object( iface )) pos += 2;
if (args) LIST_FOR_EACH_ENTRY( var, args, var_t, entry )
{
if (type_get_type( var->type ) == TYPE_BASIC)
{
switch (type_basic_get_type( var->type ))
{
case TYPE_BASIC_FLOAT: fpu_mask |= 1 << pos; break;
case TYPE_BASIC_DOUBLE: fpu_mask |= 2 << pos; break;
default: break;
}
}
pos += 2;
if (pos >= 16) break;
}
print_file( file, indent, "NdrFcShort(0x%x),\n", fpu_mask ); /* floating point mask */
*offset += 2; *offset += 2;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment