summaryrefslogtreecommitdiff
path: root/upb/pb/compile_decoder_x64.dasc
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2014-12-09 15:02:58 -0800
committerJosh Haberman <jhaberman@gmail.com>2014-12-09 15:02:58 -0800
commit82be433d4188e0b3b992e463ad52ee148d3ad8de (patch)
tree9eb0f3c941114c52e97f4e908acbd5b4bc68c4d3 /upb/pb/compile_decoder_x64.dasc
parentbf51ef86b448138a281e796df5bdfa8fa118524d (diff)
Decoder bugfix, .gitignore update, and delete obsolete files.
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