Skip to content

Commit

Permalink
x86-writer: Add reg-reg {fs,gs}-based mov insns
Browse files Browse the repository at this point in the history
  • Loading branch information
fabianfreyer committed Sep 2, 2023
1 parent 62c647a commit 818d88c
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
36 changes: 36 additions & 0 deletions gum/arch-x86/gumx86writer.c
Original file line number Diff line number Diff line change
Expand Up @@ -2369,6 +2369,24 @@ gum_x86_writer_put_mov_reg_fs_u32_ptr (GumX86Writer * self,
return gum_x86_writer_put_mov_reg_imm_ptr (self, dst_reg, fs_offset);
}

void
gum_x86_writer_put_mov_fs_reg_ptr_reg (GumX86Writer * self,
GumX86Reg fs_offset,
GumX86Reg src_reg)
{
gum_x86_writer_put_u8 (self, 0x65);
gum_x86_writer_put_mov_reg_ptr_reg (self, fs_offset, src_reg);
}

void
gum_x86_writer_put_mov_reg_fs_reg_ptr (GumX86Writer * self,
GumX86Reg dst_reg,
GumX86Reg fs_offset)
{
gum_x86_writer_put_u8 (self, 0x65);
gum_x86_writer_put_mov_reg_reg_ptr (self, dst_reg, fs_offset);
}

gboolean
gum_x86_writer_put_mov_gs_u32_ptr_reg (GumX86Writer * self,
guint32 fs_offset,
Expand All @@ -2387,6 +2405,24 @@ gum_x86_writer_put_mov_reg_gs_u32_ptr (GumX86Writer * self,
return gum_x86_writer_put_mov_reg_imm_ptr (self, dst_reg, fs_offset);
}

void
gum_x86_writer_put_mov_gs_reg_ptr_reg (GumX86Writer * self,
GumX86Reg gs_offset,
GumX86Reg src_reg)
{
gum_x86_writer_put_u8 (self, 0x65);
gum_x86_writer_put_mov_reg_ptr_reg (self, gs_offset, src_reg);
}

void
gum_x86_writer_put_mov_reg_gs_reg_ptr (GumX86Writer * self,
GumX86Reg dst_reg,
GumX86Reg gs_offset)
{
gum_x86_writer_put_u8 (self, 0x65);
gum_x86_writer_put_mov_reg_reg_ptr (self, dst_reg, gs_offset);
}

void
gum_x86_writer_put_movq_xmm0_esp_offset_ptr (GumX86Writer * self,
gint8 offset)
Expand Down
8 changes: 8 additions & 0 deletions gum/arch-x86/gumx86writer.h
Original file line number Diff line number Diff line change
Expand Up @@ -278,10 +278,18 @@ GUM_API gboolean gum_x86_writer_put_mov_fs_u32_ptr_reg (GumX86Writer * self,
guint32 fs_offset, GumX86Reg src_reg);
GUM_API gboolean gum_x86_writer_put_mov_reg_fs_u32_ptr (GumX86Writer * self,
GumX86Reg dst_reg, guint32 fs_offset);
GUM_API void gum_x86_writer_put_mov_fs_reg_ptr_reg (GumX86Writer * self,
GumX86Reg fs_offset, GumX86Reg src_reg);
GUM_API void gum_x86_writer_put_mov_reg_fs_reg_ptr (GumX86Writer * self,
GumX86Reg dst_reg, GumX86Reg fs_offset);
GUM_API gboolean gum_x86_writer_put_mov_gs_u32_ptr_reg (GumX86Writer * self,
guint32 fs_offset, GumX86Reg src_reg);
GUM_API gboolean gum_x86_writer_put_mov_reg_gs_u32_ptr (GumX86Writer * self,
GumX86Reg dst_reg, guint32 fs_offset);
GUM_API void gum_x86_writer_put_mov_gs_reg_ptr_reg (GumX86Writer * self,
GumX86Reg gs_offset, GumX86Reg src_reg);
GUM_API void gum_x86_writer_put_mov_reg_gs_reg_ptr (GumX86Writer * self,
GumX86Reg dst_reg, GumX86Reg gs_offset);

GUM_API void gum_x86_writer_put_movq_xmm0_esp_offset_ptr (GumX86Writer * self,
gint8 offset);
Expand Down

0 comments on commit 818d88c

Please sign in to comment.