orc_mips_reg_name (source1),
orc_mips_reg_name (source2));
}
+
+void
+orc_mips_emit_move (OrcCompiler *compiler,
+ OrcMipsRegister dest, OrcMipsRegister source)
+{
+ ORC_ASM_CODE (compiler, " move %s, %s\n",
+ orc_mips_reg_name (dest),
+ orc_mips_reg_name (source));
+}
void orc_mips_emit_addiu (OrcCompiler *compiler, OrcMipsRegister dest, OrcMipsRegister source, int value);
void orc_mips_emit_add (OrcCompiler *compiler, OrcMipsRegister dest, OrcMipsRegister source1, OrcMipsRegister source2);
+void orc_mips_emit_move (OrcCompiler *compiler, OrcMipsRegister dest, OrcMipsRegister source);
#endif /* ORC_ENABLE_UNSTABLE_API */
}
void
+mips_rule_copyl (OrcCompiler *compiler, void *user, OrcInstruction *insn)
+{
+ int src = ORC_SRC_ARG (compiler, insn, 0);
+ int dest = ORC_DEST_ARG (compiler, insn, 0);
+
+ orc_mips_emit_move (compiler, dest, src);
+}
+
+void
orc_compiler_orc_mips_register_rules (OrcTarget *target)
{
OrcRuleSet *rule_set;
orc_rule_register (rule_set, "loadl", mips_rule_loadl, NULL);
orc_rule_register (rule_set, "storel", mips_rule_storel, NULL);
orc_rule_register (rule_set, "addl", mips_rule_addl, NULL);
+ orc_rule_register (rule_set, "copyl", mips_rule_copyl, NULL);
}