summaryrefslogtreecommitdiff
path: root/upb/pb/compile_decoder_x64.dasc
diff options
context:
space:
mode:
Diffstat (limited to 'upb/pb/compile_decoder_x64.dasc')
-rw-r--r--upb/pb/compile_decoder_x64.dasc7
1 files changed, 4 insertions, 3 deletions
diff --git a/upb/pb/compile_decoder_x64.dasc b/upb/pb/compile_decoder_x64.dasc
index a87b376..bac1ac2 100644
--- a/upb/pb/compile_decoder_x64.dasc
+++ b/upb/pb/compile_decoder_x64.dasc
@@ -420,13 +420,14 @@ static void emit_static_asm(jitcompiler *jc) {
| lea rcx, [PTR + 10]
| mov rax, PTR // Preserve PTR in case of fallback to slow path.
| cmp rcx, DATAEND
- | cmova rcx, DATAEND // rax = MIN(DATAEND, PTR + 10)
+ | cmova rcx, DATAEND // rcx = MIN(DATAEND, PTR + 10)
|2:
- | add rax, 1
| cmp rax, rcx
| je ->decode_varint_slow
| test byte [rax], 0x80
- | jnz <2
+ | jz >3
+ | add rax, 1
+ | jmp <2
|3:
| mov PTR, rax // PTR = varint_end - 1, as desired
| ret
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback