diff options
author | Peter Zijlstra <peterz@infradead.org> | 2023-01-23 23:59:17 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2023-01-31 17:05:31 +0300 |
commit | ac0ee0a9560c97fa5fe1409e450c2425d4ebd17a (patch) | |
tree | 504f81bb70d25dd873e14d74ae5064a043dc8351 /tools/perf/scripts/python/exported-sql-viewer.py | |
parent | db7adcfd1cec4e95155e37bc066fddab302c6340 (diff) | |
download | linux-ac0ee0a9560c97fa5fe1409e450c2425d4ebd17a.tar.xz |
x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions
In order to re-write Jcc.d32 instructions text_poke_bp() needs to be
taught about them.
The biggest hurdle is that the whole machinery is currently made for 5
byte instructions and extending this would grow struct text_poke_loc
which is currently a nice 16 bytes and used in an array.
However, since text_poke_loc contains a full copy of the (s32)
displacement, it is possible to map the Jcc.d32 2 byte opcodes to
Jcc.d8 1 byte opcode for the int3 emulation.
This then leaves the replacement bytes; fudge that by only storing the
last 5 bytes and adding the rule that 'length == 6' instruction will
be prefixed with a 0x0f byte.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/20230123210607.115718513@infradead.org
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions