blob: b19e90f2acd78c6200eaa126a9b441dd8eddc0a7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#pragma once
#include "dis.h"
#define MAX_JUMP_PATCH_SIZE 8
#define MAX_REWRITTEN_SIZE (12 * 4) /* actually should be less */
static inline int jump_patch_size(uintptr_t pc, uintptr_t dpc,
struct arch_dis_ctx arch) {
return 8;
}
static inline void make_jump_patch(void **codep, uintptr_t pc, uintptr_t dpc,
struct arch_dis_ctx arch) {
if (arch.pc_low_bit)
op32(codep, 0xf000f8df);
else
op32(codep, 0xe51ff004);
op32(codep, (uint32_t) pc);
}
|