函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\lib\insn.c Create Date:2022-07-27 08:24:04
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:sn_get_prefixes - scan x86 instruction prefix bytes*@insn: &struct insn containing instruction* Populates the @insn->prefixes bitmap, and updates @insn->next_byte* to point to the (first) opcode. No effect if @insn->prefixes.got* is already set.

函数原型:void insn_get_prefixes(struct insn *insn)

返回类型:void

参数:

类型参数名称
struct insn *insn
103  prefixes等于* Prefixes * prefixes.bytes[3]: last prefix
108  如果 !0 if we've run insn_get_xxx() for this field 则返回
111  insn_get_emulate_prefix(insn)
113  nb等于0
114  lb等于0
115  b等于peek_next(insn_byte_t, insn)
116  attr等于Attribute search APIs
117 Attribute checking functions 循环
119 i小于nb循环如果bytes[i]恒等于b
121  转到:found
122  如果nb恒等于4则退出
125  bytes[nb++]等于b
128  如果x86_64addr_bytes异或等于12
130  否则addr_bytes异或等于6
132  否则如果inat_is_operand_size_prefix(attr)则
134  opnd_bytes异或等于6
136  found :
137  nbytes自加
138  next_byte自加
139  lb等于b
140  b等于peek_next(insn_byte_t, insn)
141  attr等于Attribute search APIs
144  如果lblb不等于bytes[3]则
147  b等于bytes[3]
148 i小于nb循环如果bytes[i]恒等于lb
150  bytes[i]等于b
152  bytes[3]等于lb
156  如果x86_64
157  b等于peek_next(insn_byte_t, insn)
158  attr等于Attribute search APIs
159  如果inat_is_rex_prefix(attr)则
160  value等于b
161  nbytes等于1
162  next_byte自加
163  如果X86_REX_W(b)则opnd_bytes等于8
168  !0 if we've run insn_get_xxx() for this field 等于1
171  b等于peek_next(insn_byte_t, insn)
172  attr等于Attribute search APIs
173  如果inat_is_vex_prefix(attr)则
174  b2等于peek_nbyte_next(insn_byte_t, insn, 1)
175  如果非x86_64
181  如果X86_MODRM_MOD(b2)不等于3则转到:vex_end
184  bytes[0]等于b
185  bytes[1]等于b2
186  如果inat_is_evex_prefix(attr)则
188  bytes[2]等于b2
190  bytes[3]等于b2
191  nbytes等于4
192  next_byte加等于4
193  如果x86_64VEX3 Byte2 (b2)则opnd_bytes等于8
196  否则如果inat_is_vex3_prefix(attr)则
198  bytes[2]等于b2
199  nbytes等于3
200  next_byte加等于3
201  如果x86_64VEX3 Byte2 (b2)则opnd_bytes等于8
204  否则
210  bytes[2]等于b2按位与0x7f
211  nbytes等于2
212  next_byte加等于2
215  vex_end :
216  !0 if we've run insn_get_xxx() for this field 等于1
218  !0 if we've run insn_get_xxx() for this field 等于1
220  err_out :
221  返回
调用者
名称描述
insn_get_opcodesn_get_opcode - collect opcode(s)*@insn: &struct insn containing instruction* Populates @insn->opcode, updates @insn->next_byte to point past the* opcode byte(s), and set @insn->attr (except for groups).
get_seg_reg_override_idxget_seg_reg_override_idx() - obtain segment register override index*@insn: Valid instruction with segment override prefixes* Inspect the instruction prefixes in @insn and find segment overrides, if any
insn_is_avx
insn_is_evex