From f01a1a902304d4f253ee75aaabe364f1bf07cd7a Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Thu, 10 Apr 2025 18:07:48 +0200 Subject: [PATCH] h264: renumber labels in assembly to avoid 0 and 1 They may be potentially misinterpreted by LLVM --- nihav-itu/src/codecs/h264/cabac_coder.rs | 14 +++++++------- nihav-itu/src/codecs/h264/dsp/mod.rs | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nihav-itu/src/codecs/h264/cabac_coder.rs b/nihav-itu/src/codecs/h264/cabac_coder.rs index 2ff09e2..c41928b 100644 --- a/nihav-itu/src/codecs/h264/cabac_coder.rs +++ b/nihav-itu/src/codecs/h264/cabac_coder.rs @@ -182,23 +182,23 @@ impl<'a> CABAC<'a> { // determine bit value "mov {tmp:x}, word ptr [{ctx} + 0x41A]", "cmp {tmp:x}, word ptr [{ctx} + 0x418]", - "jl 1f", + "jl 2f", "sub {tmp:x}, word ptr [{ctx} + 0x418]", "mov word ptr [{ctx} + 0x418], {range_lps:x}", "mov word ptr [{ctx} + 0x41A], {tmp:x}", "xor {bit:l}, 0x80", - "1:", + "2:", // update state[idx] "cmp {bit:x}, {val_mps:x}", - "jne 2f", + "jne 3f", "lea {tmp}, {trans_idx_mps}[rip]", - "jmp 3f", - "2:", + "jmp 4f", + "3:", "lea {tmp}, {trans_idx_lps}[rip]", "cmp {state_idx}, 0", - "jnz 3f", + "jnz 4f", "xor {val_mps:x}, 0x80", - "3:", + "4:", "movzx {tmp}, byte ptr [{tmp} + {state_idx}]", "or {tmp:x}, {val_mps:x}", "mov byte ptr [{ctx} + 0x18 + {idx}], {tmp:l}", diff --git a/nihav-itu/src/codecs/h264/dsp/mod.rs b/nihav-itu/src/codecs/h264/dsp/mod.rs index a2a58a4..c0d6104 100644 --- a/nihav-itu/src/codecs/h264/dsp/mod.rs +++ b/nihav-itu/src/codecs/h264/dsp/mod.rs @@ -1021,7 +1021,7 @@ fn check_filter4(buf: &[u8], off: usize, step: usize, stride: usize, alpha: i16, // transpose block if necessary so it's always processed by rows "test {tflag:e}, {tflag:e}", - "jz 1f", + "jz 2f", "punpcklwd xmm0, xmm1", "movhlps xmm4, xmm0", "punpcklwd xmm2, xmm3", @@ -1031,7 +1031,7 @@ fn check_filter4(buf: &[u8], off: usize, step: usize, stride: usize, alpha: i16, "movhlps xmm1, xmm0", "movhlps xmm3, xmm4", "movaps xmm2, xmm4", - "1:", + "2:", // calculate deltas and flags "movd xmm4, {alpha:r}", -- 2.39.5