diff options
author | Guillaume Emont <guijemont@igalia.com> | 2012-12-13 18:03:49 +0100 |
---|---|---|
committer | Guillaume Emont <guijemont@igalia.com> | 2012-12-28 15:23:38 +0100 |
commit | 52b226aa2d2e9c3e0c09b7996e1b65c34f72fb87 (patch) | |
tree | 9973b9428eff4c0ad2ddb59a6863ee3ea040ce9d | |
parent | b3994ff9aa47c97db6ae9d2488ea57f51475514c (diff) |
mips: added emit function for seh
-rw-r--r-- | orc/orcmips.c | 16 | ||||
-rw-r--r-- | orc/orcmips.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/orc/orcmips.c b/orc/orcmips.c index b0869e9..45abe70 100644 --- a/orc/orcmips.c +++ b/orc/orcmips.c @@ -896,3 +896,19 @@ orc_mips_emit_wsbh (OrcCompiler *compiler, 02, /* WSBH */ 040 /* BSHFL */)); } + +void +orc_mips_emit_seh (OrcCompiler *compiler, + OrcMipsRegister dest, + OrcMipsRegister source) +{ + ORC_ASM_CODE (compiler, " seh %s, %s\n", + orc_mips_reg_name (dest), + orc_mips_reg_name (source)); + orc_mips_emit (compiler, + MIPS_BINARY_INSTRUCTION(037, /* SPECIAL3 */ + ORC_MIPS_ZERO, /* actually no reg here */ + source, dest, + 030, /* SEH */ + 040 /* BSHFL */)); +} diff --git a/orc/orcmips.h b/orc/orcmips.h index 1edef44..02387c0 100644 --- a/orc/orcmips.h +++ b/orc/orcmips.h @@ -183,6 +183,7 @@ void orc_mips_emit_packrl_ph (OrcCompiler *compiler, OrcMipsRegister dest, OrcMi void orc_mips_emit_align (OrcCompiler *compiler, int align_shift); void orc_mips_emit_wsbh (OrcCompiler *compiler, OrcMipsRegister dest, OrcMipsRegister source); +void orc_mips_emit_seh (OrcCompiler *compiler, OrcMipsRegister dest, OrcMipsRegister source); void orc_mips_do_fixups (OrcCompiler *compiler); |