/**
 * @file
 * @brief Generated functions to emit code for assembler ir nodes.
 * @note  DO NOT EDIT THIS FILE, your changes will be lost.
 *         Edit ./ir/be/sparc/sparc_spec.pl instead.
 *         created by: ./ir/be/scripts/generate_emitter.pl ./ir/be/sparc/sparc_spec.pl build/gen/ir/be/sparc
 * @date  Tue Jul  7 23:51:18 2026
 */
#include "gen_sparc_emitter.h"

#include "beemithlp.h"
#include "gen_sparc_new_nodes.h"
#include "sparc_emitter.h"

static void emit_sparc_Add(ir_node const *const node)
{
	sparc_emitf(node, "add %S0, %SI1, %D0");
}

static void emit_sparc_AddCC(ir_node const *const node)
{
	sparc_emitf(node, "addcc %S0, %SI1, %D0");
}

static void emit_sparc_AddSP(ir_node const *const node)
{
	sparc_emitf(node, "add %S0, %S1, %D0\n");
}

static void emit_sparc_AddX(ir_node const *const node)
{
	sparc_emitf(node, "addx %S0, %SI1, %D0");
}

static void emit_sparc_And(ir_node const *const node)
{
	sparc_emitf(node, "and %S0, %SI1, %D0");
}

static void emit_sparc_AndCCZero(ir_node const *const node)
{
	sparc_emitf(node, "andcc %S0, %SI1, %%g0");
}

static void emit_sparc_AndN(ir_node const *const node)
{
	sparc_emitf(node, "andn %S0, %SI1, %D0");
}

static void emit_sparc_AndNCCZero(ir_node const *const node)
{
	sparc_emitf(node, "andncc %S0, %SI1, %%g0");
}

static void emit_sparc_Cmp(ir_node const *const node)
{
	sparc_emitf(node, "cmp %S0, %SI1");
}

static void emit_sparc_Ld(ir_node const *const node)
{
	sparc_emitf(node, "ld%ML %O1, %D0");
}

static void emit_sparc_Ldf(ir_node const *const node)
{
	sparc_emitf(node, "ld%ML %O0, %D0");
}

static void emit_sparc_Or(ir_node const *const node)
{
	sparc_emitf(node, "or %S0, %SI1, %D0");
}

static void emit_sparc_OrCCZero(ir_node const *const node)
{
	sparc_emitf(node, "orcc %S0, %SI1, %%g0");
}

static void emit_sparc_OrN(ir_node const *const node)
{
	sparc_emitf(node, "orn %S0, %SI1, %D0");
}

static void emit_sparc_OrNCCZero(ir_node const *const node)
{
	sparc_emitf(node, "orncc %S0, %SI1, %%g0");
}

static void emit_sparc_RestoreZero(ir_node const *const node)
{
	sparc_emitf(node, "restore");
}

static void emit_sparc_SMul(ir_node const *const node)
{
	sparc_emitf(node, "smul %S0, %SI1, %D0");
}

static void emit_sparc_SMulCCZero(ir_node const *const node)
{
	sparc_emitf(node, "smulcc %S0, %SI1, %%g0");
}

static void emit_sparc_SMulh(ir_node const *const node)
{
	sparc_emitf(node, "smul %S0, %SI1, %D0\nmov %%y, %D0");
}

static void emit_sparc_Save(ir_node const *const node)
{
	sparc_emitf(node, "save %S0, %SI1, %D0");
}

static void emit_sparc_SetHi(ir_node const *const node)
{
	sparc_emitf(node, "sethi %H, %D0");
}

static void emit_sparc_Sll(ir_node const *const node)
{
	sparc_emitf(node, "sll %S0, %SI1, %D0");
}

static void emit_sparc_Sra(ir_node const *const node)
{
	sparc_emitf(node, "sra %S0, %SI1, %D0");
}

static void emit_sparc_Srl(ir_node const *const node)
{
	sparc_emitf(node, "srl %S0, %SI1, %D0");
}

static void emit_sparc_St(ir_node const *const node)
{
	sparc_emitf(node, "st%MS %S1, %O2");
}

static void emit_sparc_Stbar(ir_node const *const node)
{
	sparc_emitf(node, "stbar");
}

static void emit_sparc_Stf(ir_node const *const node)
{
	sparc_emitf(node, "st%MS %S0, %O1");
}

static void emit_sparc_Sub(ir_node const *const node)
{
	sparc_emitf(node, "sub %S0, %SI1, %D0");
}

static void emit_sparc_SubCC(ir_node const *const node)
{
	sparc_emitf(node, "subcc %S0, %SI1, %D0");
}

static void emit_sparc_SubX(ir_node const *const node)
{
	sparc_emitf(node, "subx %S0, %SI1, %D0");
}

static void emit_sparc_UMulh(ir_node const *const node)
{
	sparc_emitf(node, "umul %S0, %SI1, %D0\nmov %%y, %D0");
}

static void emit_sparc_XNor(ir_node const *const node)
{
	sparc_emitf(node, "xnor %S0, %SI1, %D0");
}

static void emit_sparc_XNorCCZero(ir_node const *const node)
{
	sparc_emitf(node, "xnorcc %S0, %SI1, %%g0");
}

static void emit_sparc_Xor(ir_node const *const node)
{
	sparc_emitf(node, "xor %S0, %SI1, %D0");
}

static void emit_sparc_XorCCZero(ir_node const *const node)
{
	sparc_emitf(node, "xorcc %S0, %SI1, %%g0");
}

static void emit_sparc_fabs(ir_node const *const node)
{
	sparc_emitf(node, "fabss %S0, %D0");
}

static void emit_sparc_fadd(ir_node const *const node)
{
	sparc_emitf(node, "fadd%FM %S0, %S1, %D0");
}

static void emit_sparc_fcmp(ir_node const *const node)
{
	sparc_emitf(node, "fcmp%FM %S0, %S1");
}

static void emit_sparc_fdiv(ir_node const *const node)
{
	sparc_emitf(node, "fdiv%FM %S0, %S1, %D0");
}

static void emit_sparc_fftof(ir_node const *const node)
{
	sparc_emitf(node, "f%FSto%FD %S0, %D0");
}

static void emit_sparc_fftoi(ir_node const *const node)
{
	sparc_emitf(node, "f%FMtoi %S0, %D0");
}

static void emit_sparc_fitof(ir_node const *const node)
{
	sparc_emitf(node, "fito%FM %S0, %D0");
}

static void emit_sparc_fmul(ir_node const *const node)
{
	sparc_emitf(node, "fmul%FM %S0, %S1, %D0");
}

static void emit_sparc_fneg(ir_node const *const node)
{
	sparc_emitf(node, "fnegs %S0, %D0");
}

static void emit_sparc_fsub(ir_node const *const node)
{
	sparc_emitf(node, "fsub%FM %S0, %S1, %D0");
}



void sparc_register_spec_emitters(void)
{
	be_set_emitter(op_sparc_Add, emit_sparc_Add);
	be_set_emitter(op_sparc_AddCC, emit_sparc_AddCC);
	be_set_emitter(op_sparc_AddSP, emit_sparc_AddSP);
	be_set_emitter(op_sparc_AddX, emit_sparc_AddX);
	be_set_emitter(op_sparc_And, emit_sparc_And);
	be_set_emitter(op_sparc_AndCCZero, emit_sparc_AndCCZero);
	be_set_emitter(op_sparc_AndN, emit_sparc_AndN);
	be_set_emitter(op_sparc_AndNCCZero, emit_sparc_AndNCCZero);
	be_set_emitter(op_sparc_Cmp, emit_sparc_Cmp);
	be_set_emitter(op_sparc_Ld, emit_sparc_Ld);
	be_set_emitter(op_sparc_Ldf, emit_sparc_Ldf);
	be_set_emitter(op_sparc_Or, emit_sparc_Or);
	be_set_emitter(op_sparc_OrCCZero, emit_sparc_OrCCZero);
	be_set_emitter(op_sparc_OrN, emit_sparc_OrN);
	be_set_emitter(op_sparc_OrNCCZero, emit_sparc_OrNCCZero);
	be_set_emitter(op_sparc_RestoreZero, emit_sparc_RestoreZero);
	be_set_emitter(op_sparc_SMul, emit_sparc_SMul);
	be_set_emitter(op_sparc_SMulCCZero, emit_sparc_SMulCCZero);
	be_set_emitter(op_sparc_SMulh, emit_sparc_SMulh);
	be_set_emitter(op_sparc_Save, emit_sparc_Save);
	be_set_emitter(op_sparc_SetHi, emit_sparc_SetHi);
	be_set_emitter(op_sparc_Sll, emit_sparc_Sll);
	be_set_emitter(op_sparc_Sra, emit_sparc_Sra);
	be_set_emitter(op_sparc_Srl, emit_sparc_Srl);
	be_set_emitter(op_sparc_St, emit_sparc_St);
	be_set_emitter(op_sparc_Stbar, emit_sparc_Stbar);
	be_set_emitter(op_sparc_Stf, emit_sparc_Stf);
	be_set_emitter(op_sparc_Sub, emit_sparc_Sub);
	be_set_emitter(op_sparc_SubCC, emit_sparc_SubCC);
	be_set_emitter(op_sparc_SubX, emit_sparc_SubX);
	be_set_emitter(op_sparc_UMulh, emit_sparc_UMulh);
	be_set_emitter(op_sparc_XNor, emit_sparc_XNor);
	be_set_emitter(op_sparc_XNorCCZero, emit_sparc_XNorCCZero);
	be_set_emitter(op_sparc_Xor, emit_sparc_Xor);
	be_set_emitter(op_sparc_XorCCZero, emit_sparc_XorCCZero);
	be_set_emitter(op_sparc_fabs, emit_sparc_fabs);
	be_set_emitter(op_sparc_fadd, emit_sparc_fadd);
	be_set_emitter(op_sparc_fcmp, emit_sparc_fcmp);
	be_set_emitter(op_sparc_fdiv, emit_sparc_fdiv);
	be_set_emitter(op_sparc_fftof, emit_sparc_fftof);
	be_set_emitter(op_sparc_fftoi, emit_sparc_fftoi);
	be_set_emitter(op_sparc_fitof, emit_sparc_fitof);
	be_set_emitter(op_sparc_fmul, emit_sparc_fmul);
	be_set_emitter(op_sparc_fneg, emit_sparc_fneg);
	be_set_emitter(op_sparc_fsub, emit_sparc_fsub);

}

void sparc_register_spec_binary_emitters(void)
{

}
