/**
 * @file
 * @brief Function prototypes for the new opcode functions.
 * @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_new_opcodes.pl ./ir/be/sparc/sparc_spec.pl build/gen/ir/be/sparc
 * @date  Tue Jul  7 23:51:18 2026
 */
#ifndef FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
#define FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H

#include "be_types.h"
#include "irnode_t.h"
#include "sparc_nodes_attr.h"

typedef enum sparc_opcodes {
	iro_sparc_Add,
	iro_sparc_AddCC,
	iro_sparc_AddCC_t,
	iro_sparc_AddSP,
	iro_sparc_AddX,
	iro_sparc_AddX_t,
	iro_sparc_And,
	iro_sparc_AndCCZero,
	iro_sparc_AndN,
	iro_sparc_AndNCCZero,
	iro_sparc_Ba,
	iro_sparc_Bicc,
	iro_sparc_Call,
	iro_sparc_Cas,
	iro_sparc_Cmp,
	iro_sparc_FrameAddr,
	iro_sparc_IJmp,
	iro_sparc_Ld,
	iro_sparc_Ldf,
	iro_sparc_Or,
	iro_sparc_OrCCZero,
	iro_sparc_OrN,
	iro_sparc_OrNCCZero,
	iro_sparc_Restore,
	iro_sparc_RestoreZero,
	iro_sparc_Return,
	iro_sparc_SDiv,
	iro_sparc_SMul,
	iro_sparc_SMulCCZero,
	iro_sparc_SMulh,
	iro_sparc_Save,
	iro_sparc_SetHi,
	iro_sparc_Sll,
	iro_sparc_Sra,
	iro_sparc_Srl,
	iro_sparc_St,
	iro_sparc_Stbar,
	iro_sparc_Stf,
	iro_sparc_Sub,
	iro_sparc_SubCC,
	iro_sparc_SubCC_t,
	iro_sparc_SubSP,
	iro_sparc_SubX,
	iro_sparc_SubX_t,
	iro_sparc_SwitchJmp,
	iro_sparc_UDiv,
	iro_sparc_UMulh,
	iro_sparc_XNor,
	iro_sparc_XNorCCZero,
	iro_sparc_Xor,
	iro_sparc_XorCCZero,
	iro_sparc_fabs,
	iro_sparc_fadd,
	iro_sparc_fbfcc,
	iro_sparc_fcmp,
	iro_sparc_fdiv,
	iro_sparc_fftof,
	iro_sparc_fftoi,
	iro_sparc_fitof,
	iro_sparc_fmul,
	iro_sparc_fneg,
	iro_sparc_fsub,
	iro_sparc_last
} sparc_opcodes;


int is_sparc_irn(const ir_node *node);
int is_sparc_op(const ir_op *op);

int get_sparc_irn_opcode(const ir_node *node);
void sparc_create_opcodes(void);
void sparc_free_opcodes(void);

extern ir_op *op_sparc_Add;

static inline bool is_sparc_Add(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Add;
}

/**
 * construct Add node
 */
ir_node *new_bd_sparc_Add_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Add node
 */
ir_node *new_bd_sparc_Add_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AddCC;

static inline bool is_sparc_AddCC(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AddCC;
}

/**
 * construct AddCC node
 */
ir_node *new_bd_sparc_AddCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct AddCC node
 */
ir_node *new_bd_sparc_AddCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AddCC_t;

static inline bool is_sparc_AddCC_t(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AddCC_t;
}

/**
 * construct AddCC_t node
 */
ir_node *new_bd_sparc_AddCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AddSP;

static inline bool is_sparc_AddSP(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AddSP;
}

/**
 * construct AddSP node
 */
ir_node *new_bd_sparc_AddSP(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *size);

extern ir_op *op_sparc_AddX;

static inline bool is_sparc_AddX(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AddX;
}

/**
 * construct AddX node
 */
ir_node *new_bd_sparc_AddX_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *carry, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct AddX node
 */
ir_node *new_bd_sparc_AddX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);

extern ir_op *op_sparc_AddX_t;

static inline bool is_sparc_AddX_t(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AddX_t;
}

/**
 * construct AddX_t node
 */
ir_node *new_bd_sparc_AddX_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags_input, ir_mode *mode);

extern ir_op *op_sparc_And;

static inline bool is_sparc_And(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_And;
}

/**
 * construct And node
 */
ir_node *new_bd_sparc_And_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct And node
 */
ir_node *new_bd_sparc_And_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AndCCZero;

static inline bool is_sparc_AndCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AndCCZero;
}

/**
 * construct AndCCZero node
 */
ir_node *new_bd_sparc_AndCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct AndCCZero node
 */
ir_node *new_bd_sparc_AndCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AndN;

static inline bool is_sparc_AndN(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AndN;
}

/**
 * construct AndN node
 */
ir_node *new_bd_sparc_AndN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct AndN node
 */
ir_node *new_bd_sparc_AndN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_AndNCCZero;

static inline bool is_sparc_AndNCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_AndNCCZero;
}

/**
 * construct AndNCCZero node
 */
ir_node *new_bd_sparc_AndNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct AndNCCZero node
 */
ir_node *new_bd_sparc_AndNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Ba;

static inline bool is_sparc_Ba(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Ba;
}

/**
 * construct Ba node
 */
ir_node *new_bd_sparc_Ba(dbg_info *dbgi, ir_node *block);

extern ir_op *op_sparc_Bicc;

static inline bool is_sparc_Bicc(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Bicc;
}

/**
 * construct Bicc node
 */
ir_node *new_bd_sparc_Bicc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation, bool is_unsigned);

extern ir_op *op_sparc_Call;

static inline bool is_sparc_Call(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Call;
}

/**
 * construct Call node
 */
ir_node *new_bd_sparc_Call_imm(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, int n_res, ir_entity *entity, int32_t offset, bool aggregate_return);
/**
 * construct Call node
 */
ir_node *new_bd_sparc_Call_reg(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, int n_res, bool aggregate_return);

extern ir_op *op_sparc_Cas;

static inline bool is_sparc_Cas(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Cas;
}

/**
 * construct Cas node
 */
ir_node *new_bd_sparc_Cas(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *old, ir_node *new, ir_node *mem);

extern ir_op *op_sparc_Cmp;

static inline bool is_sparc_Cmp(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Cmp;
}

/**
 * construct Cmp node
 */
ir_node *new_bd_sparc_Cmp_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Cmp node
 */
ir_node *new_bd_sparc_Cmp_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_FrameAddr;

static inline bool is_sparc_FrameAddr(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_FrameAddr;
}

/**
 * construct FrameAddr node
 */
ir_node *new_bd_sparc_FrameAddr(dbg_info *dbgi, ir_node *block, ir_node *base, ir_entity *entity, int32_t offset);

extern ir_op *op_sparc_IJmp;

static inline bool is_sparc_IJmp(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_IJmp;
}

/**
 * construct IJmp node
 */
ir_node *new_bd_sparc_IJmp_imm(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct IJmp node
 */
ir_node *new_bd_sparc_IJmp_reg(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *ptr2);

extern ir_op *op_sparc_Ld;

static inline bool is_sparc_Ld(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Ld;
}

/**
 * construct Ld node
 */
ir_node *new_bd_sparc_Ld_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *ptr, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct Ld node
 */
ir_node *new_bd_sparc_Ld_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *ptr, ir_node *ptr2, ir_mode *ls_mode);

extern ir_op *op_sparc_Ldf;

static inline bool is_sparc_Ldf(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Ldf;
}

/**
 * construct Ldf node
 */
ir_node *new_bd_sparc_Ldf_d(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct Ldf node
 */
ir_node *new_bd_sparc_Ldf_q(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct Ldf node
 */
ir_node *new_bd_sparc_Ldf_s(dbg_info *dbgi, ir_node *block, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);

extern ir_op *op_sparc_Or;

static inline bool is_sparc_Or(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Or;
}

/**
 * construct Or node
 */
ir_node *new_bd_sparc_Or_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Or node
 */
ir_node *new_bd_sparc_Or_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_OrCCZero;

static inline bool is_sparc_OrCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_OrCCZero;
}

/**
 * construct OrCCZero node
 */
ir_node *new_bd_sparc_OrCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct OrCCZero node
 */
ir_node *new_bd_sparc_OrCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_OrN;

static inline bool is_sparc_OrN(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_OrN;
}

/**
 * construct OrN node
 */
ir_node *new_bd_sparc_OrN_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct OrN node
 */
ir_node *new_bd_sparc_OrN_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_OrNCCZero;

static inline bool is_sparc_OrNCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_OrNCCZero;
}

/**
 * construct OrNCCZero node
 */
ir_node *new_bd_sparc_OrNCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct OrNCCZero node
 */
ir_node *new_bd_sparc_OrNCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Restore;

static inline bool is_sparc_Restore(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Restore;
}

/**
 * construct Restore node
 */
ir_node *new_bd_sparc_Restore_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Restore node
 */
ir_node *new_bd_sparc_Restore_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer, ir_node *left, ir_node *right);

extern ir_op *op_sparc_RestoreZero;

static inline bool is_sparc_RestoreZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_RestoreZero;
}

/**
 * construct RestoreZero node
 */
ir_node *new_bd_sparc_RestoreZero(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *frame_pointer);

extern ir_op *op_sparc_Return;

static inline bool is_sparc_Return(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Return;
}

/**
 * construct Return node
 */
ir_node *new_bd_sparc_Return_imm(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs, ir_entity *entity, int32_t offset);
/**
 * construct Return node
 */
ir_node *new_bd_sparc_Return_reg(dbg_info *dbgi, ir_node *block, int const arity, ir_node *const *const in, arch_register_req_t const **const in_reqs);

extern ir_op *op_sparc_SDiv;

static inline bool is_sparc_SDiv(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SDiv;
}

/**
 * construct SDiv node
 */
ir_node *new_bd_sparc_SDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SDiv node
 */
ir_node *new_bd_sparc_SDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);

extern ir_op *op_sparc_SMul;

static inline bool is_sparc_SMul(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SMul;
}

/**
 * construct SMul node
 */
ir_node *new_bd_sparc_SMul_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SMul node
 */
ir_node *new_bd_sparc_SMul_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_SMulCCZero;

static inline bool is_sparc_SMulCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SMulCCZero;
}

/**
 * construct SMulCCZero node
 */
ir_node *new_bd_sparc_SMulCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SMulCCZero node
 */
ir_node *new_bd_sparc_SMulCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_SMulh;

static inline bool is_sparc_SMulh(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SMulh;
}

/**
 * construct SMulh node
 */
ir_node *new_bd_sparc_SMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SMulh node
 */
ir_node *new_bd_sparc_SMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Save;

static inline bool is_sparc_Save(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Save;
}

/**
 * construct Save node
 */
ir_node *new_bd_sparc_Save_imm(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Save node
 */
ir_node *new_bd_sparc_Save_reg(dbg_info *dbgi, ir_node *block, ir_node *stack, ir_node *increment);

extern ir_op *op_sparc_SetHi;

static inline bool is_sparc_SetHi(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SetHi;
}

/**
 * construct SetHi node
 */
ir_node *new_bd_sparc_SetHi(dbg_info *dbgi, ir_node *block, ir_entity *entity, int32_t immediate_value);

extern ir_op *op_sparc_Sll;

static inline bool is_sparc_Sll(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Sll;
}

/**
 * construct Sll node
 */
ir_node *new_bd_sparc_Sll_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Sll node
 */
ir_node *new_bd_sparc_Sll_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Sra;

static inline bool is_sparc_Sra(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Sra;
}

/**
 * construct Sra node
 */
ir_node *new_bd_sparc_Sra_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Sra node
 */
ir_node *new_bd_sparc_Sra_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Srl;

static inline bool is_sparc_Srl(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Srl;
}

/**
 * construct Srl node
 */
ir_node *new_bd_sparc_Srl_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Srl node
 */
ir_node *new_bd_sparc_Srl_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_St;

static inline bool is_sparc_St(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_St;
}

/**
 * construct St node
 */
ir_node *new_bd_sparc_St_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *val, ir_node *ptr, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct St node
 */
ir_node *new_bd_sparc_St_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *val, ir_node *ptr, ir_node *ptr2, ir_mode *ls_mode);

extern ir_op *op_sparc_Stbar;

static inline bool is_sparc_Stbar(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Stbar;
}

/**
 * construct Stbar node
 */
ir_node *new_bd_sparc_Stbar(dbg_info *dbgi, ir_node *block, ir_node *mem);

extern ir_op *op_sparc_Stf;

static inline bool is_sparc_Stf(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Stf;
}

/**
 * construct Stf node
 */
ir_node *new_bd_sparc_Stf_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct Stf node
 */
ir_node *new_bd_sparc_Stf_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);
/**
 * construct Stf node
 */
ir_node *new_bd_sparc_Stf_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_node *ptr, ir_node *mem, ir_mode *ls_mode, ir_entity *entity, int32_t offset, bool is_frame_entity);

extern ir_op *op_sparc_Sub;

static inline bool is_sparc_Sub(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Sub;
}

/**
 * construct Sub node
 */
ir_node *new_bd_sparc_Sub_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Sub node
 */
ir_node *new_bd_sparc_Sub_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_SubCC;

static inline bool is_sparc_SubCC(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SubCC;
}

/**
 * construct SubCC node
 */
ir_node *new_bd_sparc_SubCC_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SubCC node
 */
ir_node *new_bd_sparc_SubCC_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_SubCC_t;

static inline bool is_sparc_SubCC_t(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SubCC_t;
}

/**
 * construct SubCC_t node
 */
ir_node *new_bd_sparc_SubCC_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_SubSP;

static inline bool is_sparc_SubSP(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SubSP;
}

/**
 * construct SubSP node
 */
ir_node *new_bd_sparc_SubSP_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *stack, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SubSP node
 */
ir_node *new_bd_sparc_SubSP_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *stack, ir_node *size);

extern ir_op *op_sparc_SubX;

static inline bool is_sparc_SubX(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SubX;
}

/**
 * construct SubX node
 */
ir_node *new_bd_sparc_SubX_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *carry, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct SubX node
 */
ir_node *new_bd_sparc_SubX_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *carry);

extern ir_op *op_sparc_SubX_t;

static inline bool is_sparc_SubX_t(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SubX_t;
}

/**
 * construct SubX_t node
 */
ir_node *new_bd_sparc_SubX_t(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_node *flags_input, ir_mode *mode);

extern ir_op *op_sparc_SwitchJmp;

static inline bool is_sparc_SwitchJmp(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_SwitchJmp;
}

/**
 * construct SwitchJmp node
 */
ir_node *new_bd_sparc_SwitchJmp(dbg_info *dbgi, ir_node *block, ir_node *op0, int n_res, const ir_switch_table *table, ir_entity *jump_table);

extern ir_op *op_sparc_UDiv;

static inline bool is_sparc_UDiv(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_UDiv;
}

/**
 * construct UDiv node
 */
ir_node *new_bd_sparc_UDiv_imm(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct UDiv node
 */
ir_node *new_bd_sparc_UDiv_reg(dbg_info *dbgi, ir_node *block, ir_node *mem, ir_node *dividend_high, ir_node *dividend_low, ir_node *divisor);

extern ir_op *op_sparc_UMulh;

static inline bool is_sparc_UMulh(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_UMulh;
}

/**
 * construct UMulh node
 */
ir_node *new_bd_sparc_UMulh_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct UMulh node
 */
ir_node *new_bd_sparc_UMulh_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_XNor;

static inline bool is_sparc_XNor(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_XNor;
}

/**
 * construct XNor node
 */
ir_node *new_bd_sparc_XNor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct XNor node
 */
ir_node *new_bd_sparc_XNor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_XNorCCZero;

static inline bool is_sparc_XNorCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_XNorCCZero;
}

/**
 * construct XNorCCZero node
 */
ir_node *new_bd_sparc_XNorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct XNorCCZero node
 */
ir_node *new_bd_sparc_XNorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_Xor;

static inline bool is_sparc_Xor(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_Xor;
}

/**
 * construct Xor node
 */
ir_node *new_bd_sparc_Xor_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct Xor node
 */
ir_node *new_bd_sparc_Xor_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_XorCCZero;

static inline bool is_sparc_XorCCZero(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_XorCCZero;
}

/**
 * construct XorCCZero node
 */
ir_node *new_bd_sparc_XorCCZero_imm(dbg_info *dbgi, ir_node *block, ir_node *left, ir_entity *immediate_entity, int32_t immediate_value);
/**
 * construct XorCCZero node
 */
ir_node *new_bd_sparc_XorCCZero_reg(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right);

extern ir_op *op_sparc_fabs;

static inline bool is_sparc_fabs(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fabs;
}

/**
 * construct fabs node
 */
ir_node *new_bd_sparc_fabs_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
/**
 * construct fabs node
 */
ir_node *new_bd_sparc_fabs_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
/**
 * construct fabs node
 */
ir_node *new_bd_sparc_fabs_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);

extern ir_op *op_sparc_fadd;

static inline bool is_sparc_fadd(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fadd;
}

/**
 * construct fadd node
 */
ir_node *new_bd_sparc_fadd_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fadd node
 */
ir_node *new_bd_sparc_fadd_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fadd node
 */
ir_node *new_bd_sparc_fadd_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);

extern ir_op *op_sparc_fbfcc;

static inline bool is_sparc_fbfcc(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fbfcc;
}

/**
 * construct fbfcc node
 */
ir_node *new_bd_sparc_fbfcc(dbg_info *dbgi, ir_node *block, ir_node *flags, ir_relation relation);

extern ir_op *op_sparc_fcmp;

static inline bool is_sparc_fcmp(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fcmp;
}

/**
 * construct fcmp node
 */
ir_node *new_bd_sparc_fcmp_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
/**
 * construct fcmp node
 */
ir_node *new_bd_sparc_fcmp_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);
/**
 * construct fcmp node
 */
ir_node *new_bd_sparc_fcmp_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_node *op1, ir_mode *fp_mode);

extern ir_op *op_sparc_fdiv;

static inline bool is_sparc_fdiv(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fdiv;
}

/**
 * construct fdiv node
 */
ir_node *new_bd_sparc_fdiv_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fdiv node
 */
ir_node *new_bd_sparc_fdiv_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fdiv node
 */
ir_node *new_bd_sparc_fdiv_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);

extern ir_op *op_sparc_fftof;

static inline bool is_sparc_fftof(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fftof;
}

/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_d_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_d_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_q_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_q_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_s_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);
/**
 * construct fftof node
 */
ir_node *new_bd_sparc_fftof_s_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *src_mode, ir_mode *dest_mode);

extern ir_op *op_sparc_fftoi;

static inline bool is_sparc_fftoi(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fftoi;
}

/**
 * construct fftoi node
 */
ir_node *new_bd_sparc_fftoi_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
/**
 * construct fftoi node
 */
ir_node *new_bd_sparc_fftoi_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
/**
 * construct fftoi node
 */
ir_node *new_bd_sparc_fftoi_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);

extern ir_op *op_sparc_fitof;

static inline bool is_sparc_fitof(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fitof;
}

/**
 * construct fitof node
 */
ir_node *new_bd_sparc_fitof_d(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
/**
 * construct fitof node
 */
ir_node *new_bd_sparc_fitof_q(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);
/**
 * construct fitof node
 */
ir_node *new_bd_sparc_fitof_s(dbg_info *dbgi, ir_node *block, ir_node *op0, ir_mode *fp_mode);

extern ir_op *op_sparc_fmul;

static inline bool is_sparc_fmul(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fmul;
}

/**
 * construct fmul node
 */
ir_node *new_bd_sparc_fmul_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fmul node
 */
ir_node *new_bd_sparc_fmul_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fmul node
 */
ir_node *new_bd_sparc_fmul_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);

extern ir_op *op_sparc_fneg;

static inline bool is_sparc_fneg(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fneg;
}

/**
 * construct fneg node
 */
ir_node *new_bd_sparc_fneg_d(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
/**
 * construct fneg node
 */
ir_node *new_bd_sparc_fneg_q(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);
/**
 * construct fneg node
 */
ir_node *new_bd_sparc_fneg_s(dbg_info *dbgi, ir_node *block, ir_node *val, ir_mode *fp_mode);

extern ir_op *op_sparc_fsub;

static inline bool is_sparc_fsub(ir_node const *const n)
{
	return get_irn_op(n) == op_sparc_fsub;
}

/**
 * construct fsub node
 */
ir_node *new_bd_sparc_fsub_d(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fsub node
 */
ir_node *new_bd_sparc_fsub_q(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);
/**
 * construct fsub node
 */
ir_node *new_bd_sparc_fsub_s(dbg_info *dbgi, ir_node *block, ir_node *left, ir_node *right, ir_mode *fp_mode);


typedef enum pn_sparc_AddCC {
	pn_sparc_AddCC_res = 0,
	pn_sparc_AddCC_flags = 1,
} pn_sparc_AddCC;

typedef enum pn_sparc_AddCC_t {
	pn_sparc_AddCC_t_res = 0,
	pn_sparc_AddCC_t_flags = 1,
} pn_sparc_AddCC_t;

typedef enum n_sparc_AddCC_t {
	n_sparc_AddCC_t_left = 0,
	n_sparc_AddCC_t_right = 1,
} n_sparc_AddCC_t;

typedef enum pn_sparc_AddSP {
	pn_sparc_AddSP_stack = 0,
} pn_sparc_AddSP;

typedef enum n_sparc_AddSP {
	n_sparc_AddSP_stack = 0,
	n_sparc_AddSP_size = 1,
} n_sparc_AddSP;

typedef enum n_sparc_AddX_t {
	n_sparc_AddX_t_left = 0,
	n_sparc_AddX_t_right = 1,
	n_sparc_AddX_t_flags_input = 2,
} n_sparc_AddX_t;

typedef enum pn_sparc_Bicc {
	pn_sparc_Bicc_false = 0,
	pn_sparc_Bicc_true = 1,
} pn_sparc_Bicc;

typedef enum n_sparc_Bicc {
	n_sparc_Bicc_flags = 0,
} n_sparc_Bicc;

typedef enum pn_sparc_Call {
	pn_sparc_Call_M = 0,
	pn_sparc_Call_stack = 1,
	pn_sparc_Call_first_result = 2,
} pn_sparc_Call;

typedef enum pn_sparc_Cas {
	pn_sparc_Cas_res = 0,
	pn_sparc_Cas_M = 1,
} pn_sparc_Cas;

typedef enum n_sparc_Cas {
	n_sparc_Cas_ptr = 0,
	n_sparc_Cas_old = 1,
	n_sparc_Cas_new = 2,
	n_sparc_Cas_mem = 3,
} n_sparc_Cas;

typedef enum n_sparc_FrameAddr {
	n_sparc_FrameAddr_base = 0,
} n_sparc_FrameAddr;

typedef enum pn_sparc_IJmp {
	pn_sparc_IJmp_jmp = 0,
} pn_sparc_IJmp;

typedef enum pn_sparc_Ld {
	pn_sparc_Ld_res = 0,
	pn_sparc_Ld_M = 1,
} pn_sparc_Ld;

typedef enum n_sparc_Ld {
	n_sparc_Ld_mem = 0,
	n_sparc_Ld_ptr = 1,
} n_sparc_Ld;

typedef enum pn_sparc_Ldf {
	pn_sparc_Ldf_res = 0,
	pn_sparc_Ldf_M = 1,
} pn_sparc_Ldf;

typedef enum n_sparc_Ldf {
	n_sparc_Ldf_ptr = 0,
	n_sparc_Ldf_mem = 1,
} n_sparc_Ldf;

typedef enum pn_sparc_Restore {
	pn_sparc_Restore_stack = 0,
	pn_sparc_Restore_res = 1,
} pn_sparc_Restore;

typedef enum pn_sparc_RestoreZero {
	pn_sparc_RestoreZero_stack = 0,
} pn_sparc_RestoreZero;

typedef enum n_sparc_RestoreZero {
	n_sparc_RestoreZero_stack = 0,
	n_sparc_RestoreZero_frame_pointer = 1,
} n_sparc_RestoreZero;

typedef enum n_sparc_Return {
	n_sparc_Return_mem = 0,
	n_sparc_Return_sp = 1,
	n_sparc_Return_first_result = 2,
} n_sparc_Return;

typedef enum pn_sparc_SDiv {
	pn_sparc_SDiv_res = 0,
	pn_sparc_SDiv_M = 1,
} pn_sparc_SDiv;

typedef enum n_sparc_SDiv {
	n_sparc_SDiv_mem = 0,
	n_sparc_SDiv_dividend_high = 1,
	n_sparc_SDiv_dividend_low = 2,
	n_sparc_SDiv_divisor = 3,
} n_sparc_SDiv;

typedef enum pn_sparc_Save {
	pn_sparc_Save_stack = 0,
} pn_sparc_Save;

typedef enum n_sparc_Save {
	n_sparc_Save_stack = 0,
} n_sparc_Save;

typedef enum pn_sparc_SetHi {
	pn_sparc_SetHi_res = 0,
} pn_sparc_SetHi;

typedef enum pn_sparc_St {
	pn_sparc_St_M = 0,
} pn_sparc_St;

typedef enum n_sparc_St {
	n_sparc_St_mem = 0,
	n_sparc_St_val = 1,
	n_sparc_St_ptr = 2,
} n_sparc_St;

typedef enum pn_sparc_Stbar {
	pn_sparc_Stbar_M = 0,
} pn_sparc_Stbar;

typedef enum n_sparc_Stbar {
	n_sparc_Stbar_mem = 0,
} n_sparc_Stbar;

typedef enum pn_sparc_Stf {
	pn_sparc_Stf_M = 0,
} pn_sparc_Stf;

typedef enum n_sparc_Stf {
	n_sparc_Stf_val = 0,
	n_sparc_Stf_ptr = 1,
	n_sparc_Stf_mem = 2,
} n_sparc_Stf;

typedef enum pn_sparc_SubCC {
	pn_sparc_SubCC_res = 0,
	pn_sparc_SubCC_flags = 1,
} pn_sparc_SubCC;

typedef enum pn_sparc_SubCC_t {
	pn_sparc_SubCC_t_res = 0,
	pn_sparc_SubCC_t_flags = 1,
} pn_sparc_SubCC_t;

typedef enum n_sparc_SubCC_t {
	n_sparc_SubCC_t_left = 0,
	n_sparc_SubCC_t_right = 1,
} n_sparc_SubCC_t;

typedef enum pn_sparc_SubSP {
	pn_sparc_SubSP_stack = 0,
	pn_sparc_SubSP_addr = 1,
	pn_sparc_SubSP_M = 2,
} pn_sparc_SubSP;

typedef enum n_sparc_SubSP {
	n_sparc_SubSP_mem = 0,
	n_sparc_SubSP_stack = 1,
} n_sparc_SubSP;

typedef enum n_sparc_SubX_t {
	n_sparc_SubX_t_left = 0,
	n_sparc_SubX_t_right = 1,
	n_sparc_SubX_t_flags_input = 2,
} n_sparc_SubX_t;

typedef enum pn_sparc_UDiv {
	pn_sparc_UDiv_res = 0,
	pn_sparc_UDiv_M = 1,
} pn_sparc_UDiv;

typedef enum n_sparc_UDiv {
	n_sparc_UDiv_mem = 0,
	n_sparc_UDiv_dividend_high = 1,
	n_sparc_UDiv_dividend_low = 2,
	n_sparc_UDiv_divisor = 3,
} n_sparc_UDiv;

typedef enum n_sparc_fabs {
	n_sparc_fabs_val = 0,
} n_sparc_fabs;

typedef enum n_sparc_fadd {
	n_sparc_fadd_left = 0,
	n_sparc_fadd_right = 1,
} n_sparc_fadd;

typedef enum pn_sparc_fbfcc {
	pn_sparc_fbfcc_false = 0,
	pn_sparc_fbfcc_true = 1,
} pn_sparc_fbfcc;

typedef enum n_sparc_fbfcc {
	n_sparc_fbfcc_flags = 0,
} n_sparc_fbfcc;

typedef enum pn_sparc_fdiv {
	pn_sparc_fdiv_res = 0,
	pn_sparc_fdiv_M = 1,
} pn_sparc_fdiv;

typedef enum n_sparc_fdiv {
	n_sparc_fdiv_left = 0,
	n_sparc_fdiv_right = 1,
} n_sparc_fdiv;

typedef enum n_sparc_fmul {
	n_sparc_fmul_left = 0,
	n_sparc_fmul_right = 1,
} n_sparc_fmul;

typedef enum n_sparc_fneg {
	n_sparc_fneg_val = 0,
} n_sparc_fneg;

typedef enum n_sparc_fsub {
	n_sparc_fsub_left = 0,
	n_sparc_fsub_right = 1,
} n_sparc_fsub;


#endif
