diff options
Diffstat (limited to 'src/upb_decoder_x86.dasc')
-rw-r--r-- | src/upb_decoder_x86.dasc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/upb_decoder_x86.dasc b/src/upb_decoder_x86.dasc index ecd9899..5e85bd9 100644 --- a/src/upb_decoder_x86.dasc +++ b/src/upb_decoder_x86.dasc @@ -188,9 +188,11 @@ void __attribute__((noinline)) __jit_debug_register_code() { __asm__ __volatile_ |// TODO: optimize for 0 (xor) and 32-bits. |.macro loadfval, f || if (f->fval.val.uint64 == 0) { -| xor ARG2_32, ARG2_32 +| xor ARG2_32, ARG2_32 +|| } else if (f->fval.val.uint64 < 0xffffffff) { +| mov ARG2_32, f->fval.val.uint64 || } else { -| mov ARG2_64, f->fval.val.uint64 +| mov64 ARG2_64, f->fval.val.uint64 || } |.endmacro |