Documented in 2 files:
Defined in 2 files as a prototype:
- arch/x86/include/asm/insn.h, line 156 (as a prototype)
- tools/arch/x86/include/asm/insn.h, line 156 (as a prototype)
Defined in 2 files as a function:
Referenced in 7 files:
- arch/x86/events/utils.c, line 52
- arch/x86/include/asm/insn.h, line 177
- arch/x86/kernel/umip.c, line 154
- arch/x86/lib/insn-eval.c
- arch/x86/lib/insn.c
- tools/arch/x86/include/asm/insn.h, line 177
- tools/arch/x86/lib/insn.c
Smatch caller information:
arch/x86/kernel/umip.c identify_insn() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 7961320843205591040 |
| PARAM_VALUE | 0 | insn->displacement.got | 0-1 |
| PARAM_VALUE | 0 | insn->displacement.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->end_kaddr | 4096-ptr_max |
| PARAM_VALUE | 0 | insn->immediate.got | 1 |
| PARAM_VALUE | 0 | insn->immediate.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->immediate1.got | 0-1 |
| PARAM_VALUE | 0 | insn->immediate1.nbytes | 0,2,4 |
| PARAM_VALUE | 0 | insn->immediate2.got | 0-1 |
| PARAM_VALUE | 0 | insn->immediate2.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->modrm.got | 0-1 |
| PARAM_VALUE | 0 | insn->moffset1.got | 0-1 |
| PARAM_VALUE | 0 | insn->moffset1.nbytes | 0,2,4 |
| PARAM_VALUE | 0 | insn->moffset2.got | 0-1 |
| PARAM_VALUE | 0 | insn->moffset2.nbytes | 0,4 |
| PARAM_VALUE | 0 | insn->sib.got | 0-1 |
| PARAM_VALUE | 0 | insn->sib.nbytes | 0-1 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| PREEMPT_ADD | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
arch/x86/lib/insn.c insn_get_sib() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 4096-ptr_max |
| PARAM_VALUE | 0 | insn->sib.got | 0 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | insn->displacement.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->modrm.value | 0-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->rex_prefix.value | 0-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
| USER_DATA | 0 | *insn->end_kaddr | 0-255 |
| USER_DATA | 0 | *insn->kaddr | 0-255[u] |
| USER_DATA | 0 | *insn->next_byte | 0-255 |
arch/x86/lib/insn.c insn_rip_relative() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 1875746886108372992,2693768499051995136,3904299021120065536,5071505957062545408 |
| PARAM_VALUE | 0 | insn->addr_bytes | 0 |
| PARAM_VALUE | 0 | insn->attr | 0 |
| PARAM_VALUE | 0 | insn->displacement.got | 0-1 |
| PARAM_VALUE | 0 | insn->displacement.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->emulate_prefix_size | 0 |
| PARAM_VALUE | 0 | insn->end_kaddr | 0,4096-ptr_max |
| PARAM_VALUE | 0 | insn->immediate.got | 0-1 |
| PARAM_VALUE | 0 | insn->immediate.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->immediate1.got | 0-1 |
| PARAM_VALUE | 0 | insn->immediate1.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->immediate2.got | 0-1 |
| PARAM_VALUE | 0 | insn->immediate2.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->kaddr | 0 |
| PARAM_VALUE | 0 | insn->length | 0 |
| PARAM_VALUE | 0 | insn->modrm.got | 0-1 |
| PARAM_VALUE | 0 | insn->modrm.nbytes | 0 |
| PARAM_VALUE | 0 | insn->modrm.value | 0-255 |
| PARAM_VALUE | 0 | insn->moffset1.got | 0-1 |
| PARAM_VALUE | 0 | insn->moffset1.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->moffset2.got | 0-1 |
| PARAM_VALUE | 0 | insn->moffset2.nbytes | 0-2,4 |
| PARAM_VALUE | 0 | insn->next_byte | 0,4096-u64max |
| PARAM_VALUE | 0 | insn->opcode.got | 0 |
| PARAM_VALUE | 0 | insn->opcode.nbytes | 0 |
| PARAM_VALUE | 0 | insn->opnd_bytes | 0,2,4,8 |
| PARAM_VALUE | 0 | insn->prefixes.got | 0 |
| PARAM_VALUE | 0 | insn->prefixes.nbytes | 0 |
| PARAM_VALUE | 0 | insn->prefixes.value | 0 |
| PARAM_VALUE | 0 | insn->rex_prefix.got | 0 |
| PARAM_VALUE | 0 | insn->rex_prefix.nbytes | 0 |
| PARAM_VALUE | 0 | insn->sib.got | 0-1 |
| PARAM_VALUE | 0 | insn->sib.nbytes | 0-1 |
| PARAM_VALUE | 0 | insn->sib.value | 0-255 |
| PARAM_VALUE | 0 | insn->vex_prefix.got | 0 |
| PARAM_VALUE | 0 | insn->vex_prefix.nbytes | 0 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 1 |
| PARAM_VALUE | 0 | insn->xop_prefix.got | 0 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| PARAM_VALUE | 0 | insn->xop_prefix.value | 0 |
| PARAM_VALUE | 0 | *insn->prefixes.bytes | 0-255 |
| PARAM_VALUE | 0 | *insn->rex_prefix.bytes | 0-255 |
| PARAM_VALUE | 0 | *insn->vex_prefix.bytes | 0-255 |
| DATA_SOURCE | 0 | insn | $0 |
| FUZZY_MAX | 0 | insn->opnd_bytes | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &uprobe->consumer_rwsem | ||
| HALF_LOCKED2 | _T->lock |
arch/x86/lib/insn-eval.c get_eff_addr_modrm() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 3280860769348898816,3929561995604525064,4671128583144820736,6127367958537531392,6747283956112052232,7961320843205591040,8874595658658983936 |
| PARAM_VALUE | 0 | insn->addr_bytes | 4,8 |
| PARAM_VALUE | 0 | insn->opcode.got | 1-255 |
| PARAM_VALUE | 0 | insn->sib.nbytes | 0 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| BIT_INFO | 0 | insn->addr_bytes | 0x0,0xc |
| HARD_MAX | 0 | insn->addr_bytes | 8 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | insn->displacement.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->modrm.value | 0-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->rex_prefix.value | 0-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
arch/x86/lib/insn-eval.c get_eff_addr_modrm_16() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 3280860769348898816,3929561995604525064,4671128583144820736,6127367958537531392,6747283956112052232,7961320843205591040,8874595658658983936 |
| PARAM_VALUE | 0 | insn->addr_bytes | 2 |
| PARAM_VALUE | 0 | insn->displacement.got | 1-255 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| USER_DATA | 0 | insn->displacement.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->modrm.value | 0-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->rex_prefix.value | 0-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
arch/x86/lib/insn-eval.c get_eff_addr_reg() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 3280860769348898816,3929561995604525064,4671128583144820736,6127367958537531392,6747283956112052232,7961320843205591040,8874595658658983936 |
| PARAM_VALUE | 0 | insn->addr_bytes | 2,4,8 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| HARD_MAX | 0 | insn->addr_bytes | 8 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | insn->displacement.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->modrm.value | 0-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->rex_prefix.value | 0-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
arch/x86/lib/insn-eval.c get_eff_addr_sib() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 3280860769348898816,3929561995604525064,4671128583144820736,6127367958537531392,6747283956112052232,7961320843205591040,8874595658658983936 |
| PARAM_VALUE | 0 | insn->addr_bytes | 4,8 |
| PARAM_VALUE | 0 | insn->opcode.got | 1-255 |
| PARAM_VALUE | 0 | insn->sib.nbytes | 1-255 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| DATA_SOURCE | 0 | insn | $0 |
| BIT_INFO | 0 | insn->addr_bytes | 0x0,0xc |
| HARD_MAX | 0 | insn->addr_bytes | 8 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | insn->displacement.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate1.value | (-128)-255 |
| USER_DATA | 0 | insn->immediate2.value | (-128)-255 |
| USER_DATA | 0 | insn->modrm.value | 0-255 |
| USER_DATA | 0 | insn->moffset1.value | (-128)-255 |
| USER_DATA | 0 | insn->moffset2.value | (-128)-255 |
| USER_DATA | 0 | insn->rex_prefix.value | 0-255 |
| USER_DATA | 0 | insn->sib.value | 0-255 |
arch/x86/events/utils.c decode_branch_type() -> insn_get_modrm()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | insn | 5918861713348698112 |
| PARAM_VALUE | 0 | insn->displacement.got | 0 |
| PARAM_VALUE | 0 | insn->displacement.nbytes | 0 |
| PARAM_VALUE | 0 | insn->displacement.value | 0 |
| PARAM_VALUE | 0 | insn->end_kaddr | 4096-ptr_max |
| PARAM_VALUE | 0 | insn->immediate.got | 0 |
| PARAM_VALUE | 0 | insn->immediate.nbytes | 0 |
| PARAM_VALUE | 0 | insn->immediate.value | 0 |
| PARAM_VALUE | 0 | insn->immediate1.got | 0 |
| PARAM_VALUE | 0 | insn->immediate1.nbytes | 0 |
| PARAM_VALUE | 0 | insn->immediate1.value | 0 |
| PARAM_VALUE | 0 | insn->immediate2.got | 0 |
| PARAM_VALUE | 0 | insn->immediate2.nbytes | 0 |
| PARAM_VALUE | 0 | insn->immediate2.value | 0 |
| PARAM_VALUE | 0 | insn->length | 0 |
| PARAM_VALUE | 0 | insn->modrm.got | 0 |
| PARAM_VALUE | 0 | insn->modrm.nbytes | 0 |
| PARAM_VALUE | 0 | insn->modrm.value | 0 |
| PARAM_VALUE | 0 | insn->moffset1.got | 0 |
| PARAM_VALUE | 0 | insn->moffset1.nbytes | 0 |
| PARAM_VALUE | 0 | insn->moffset1.value | 0 |
| PARAM_VALUE | 0 | insn->moffset2.got | 0 |
| PARAM_VALUE | 0 | insn->moffset2.nbytes | 0 |
| PARAM_VALUE | 0 | insn->moffset2.value | 0 |
| PARAM_VALUE | 0 | insn->opcode.got | 1 |
| PARAM_VALUE | 0 | insn->opcode.nbytes | 1-255 |
| PARAM_VALUE | 0 | insn->prefixes.got | 1-255 |
| PARAM_VALUE | 0 | insn->rex_prefix.bytes | 0-s32max,18446744071562067968-u64max |
| PARAM_VALUE | 0 | insn->sib.got | 0 |
| PARAM_VALUE | 0 | insn->sib.nbytes | 0 |
| PARAM_VALUE | 0 | insn->sib.value | 0 |
| PARAM_VALUE | 0 | insn->vex_prefix.value | 0 |
| PARAM_VALUE | 0 | insn->x86_64 | 0-1 |
| PARAM_VALUE | 0 | insn->xop_prefix.nbytes | 0 |
| PARAM_VALUE | 0 | *insn->opcode->bytes | 0-255 |
| DATA_SOURCE | 0 | insn | $0 |
| MEM_ZERO | 0 | insn | |
| RX_PATH | |||
| TASK_NOT_RUNNING |