vkd3d-shader/d3d-asm: Always use '.' as decimal separator when printing floats.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet
2022-03-01 13:21:33 +01:00
committed by Alexandre Julliard
parent 4728cf1286
commit aef9e9ea62
3 changed files with 27 additions and 5 deletions

View File

@@ -749,12 +749,17 @@ static void shader_dump_src_param(struct vkd3d_d3d_asm_compiler *compiler,
static void shader_print_float_literal(struct vkd3d_d3d_asm_compiler *compiler,
const char *prefix, float f, const char *suffix)
{
const char *sign = "";
if (isfinite(f) && signbit(f))
vkd3d_string_buffer_printf(&compiler->buffer, "%s-%s%.8e%s%s",
prefix, compiler->colours.literal, -f, compiler->colours.reset, suffix);
else
vkd3d_string_buffer_printf(&compiler->buffer, "%s%s%.8e%s%s",
prefix, compiler->colours.literal, f, compiler->colours.reset, suffix);
{
sign = "-";
f = -f;
}
vkd3d_string_buffer_printf(&compiler->buffer, "%s%s%s", prefix, sign, compiler->colours.literal);
vkd3d_string_buffer_print_f32(&compiler->buffer, f);
vkd3d_string_buffer_printf(&compiler->buffer, "%s%s", compiler->colours.reset, suffix);
}
static void shader_print_double_literal(struct vkd3d_d3d_asm_compiler *compiler,