mips: added emit function for seh
authorGuillaume Emont <guijemont@igalia.com>
Thu, 13 Dec 2012 17:03:49 +0000 (18:03 +0100)
committerGuillaume Emont <guijemont@igalia.com>
Fri, 28 Dec 2012 14:23:38 +0000 (15:23 +0100)
orc/orcmips.c
orc/orcmips.h

index b0869e9..45abe70 100644 (file)
@@ -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 */));
+}
index 1edef44..02387c0 100644 (file)
@@ -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);