#include "libavcodec/cabac.h"#include "libavutil/attributes.h"#include "libavutil/x86_cpu.h"#include "config.h"Go to the source code of this file.
Defines | |
| #define | BRANCHLESS_GET_CABAC_UPDATE(ret, statep, low, lowword, range, tmp) |
| #define | BRANCHLESS_GET_CABAC(ret, statep, low, lowword, range, tmp, tmpbyte, byte) |
| #define | get_cabac_inline get_cabac_inline_x86 |
| #define | get_cabac_bypass_sign get_cabac_bypass_sign_x86 |
Functions | |
| static av_always_inline int | get_cabac_inline_x86 (CABACContext *c, uint8_t *const state) |
| static av_always_inline int | get_cabac_bypass_sign_x86 (CABACContext *c, int val) |
| #define BRANCHLESS_GET_CABAC | ( | ret, | ||
| statep, | ||||
| low, | ||||
| lowword, | ||||
| range, | ||||
| tmp, | ||||
| tmpbyte, | ||||
| byte | ||||
| ) |
"movzbl "statep" , "ret" \n\t"\ "mov "range" , "tmp" \n\t"\ "and $0xC0 , "range" \n\t"\ "movzbl "MANGLE(ff_h264_lps_range)"("ret", "range", 2), "range" \n\t"\ "sub "range" , "tmp" \n\t"\ BRANCHLESS_GET_CABAC_UPDATE(ret, statep, low, lowword, range, tmp) \ "movzbl " MANGLE(ff_h264_norm_shift) "("range"), %%ecx \n\t"\ "shl %%cl , "range" \n\t"\ "movzbl "MANGLE(ff_h264_mlps_state)"+128("ret"), "tmp" \n\t"\ "shl %%cl , "low" \n\t"\ "mov "tmpbyte" , "statep" \n\t"\ "test "lowword" , "lowword" \n\t"\ " jnz 1f \n\t"\ "mov "byte" , %%"REG_c" \n\t"\ "add"OPSIZE" $2 , "byte" \n\t"\ "movzwl (%%"REG_c") , "tmp" \n\t"\ "lea -1("low") , %%ecx \n\t"\ "xor "low" , %%ecx \n\t"\ "shr $15 , %%ecx \n\t"\ "bswap "tmp" \n\t"\ "shr $15 , "tmp" \n\t"\ "movzbl " MANGLE(ff_h264_norm_shift) "(%%ecx), %%ecx \n\t"\ "sub $0xFFFF , "tmp" \n\t"\ "neg %%ecx \n\t"\ "add $7 , %%ecx \n\t"\ "shl %%cl , "tmp" \n\t"\ "add "tmp" , "low" \n\t"\ "1: \n\t"
Definition at line 54 of file cabac.h.
Referenced by decode_significance_8x8_x86(), decode_significance_x86(), and get_cabac_inline_x86().
| #define BRANCHLESS_GET_CABAC_UPDATE | ( | ret, | ||
| statep, | ||||
| low, | ||||
| lowword, | ||||
| range, | ||||
| tmp | ||||
| ) |
| #define get_cabac_bypass_sign get_cabac_bypass_sign_x86 |
Definition at line 103 of file cabac.h.
Referenced by decode_cabac_mb_mvd().
| #define get_cabac_inline get_cabac_inline_x86 |
Definition at line 85 of file cabac.h.
Referenced by get_cabac(), and get_cabac_noinline().
| static av_always_inline int get_cabac_bypass_sign_x86 | ( | CABACContext * | c, | |
| int | val | |||
| ) | [static] |
| static av_always_inline int get_cabac_inline_x86 | ( | CABACContext * | c, | |
| uint8_t *const | state | |||
| ) | [static] |