/**
 * @file
 * @brief  The generated interface for the register allocator.
 *          Contains register classes and types and register constraints
 *          for all nodes where constraints were given in spec.
 * @note    DO NOT EDIT THIS FILE, your changes will be lost.
 *          Edit ./ir/be/TEMPLATE/TEMPLATE_spec.pl instead.
 *          created by: ./ir/be/scripts/generate_regalloc_if.pl ./ir/be/TEMPLATE/TEMPLATE_spec.pl build/gen/ir/be/TEMPLATE
 * $date    Tue Jul  7 23:51:18 2026
 */
#include "gen_TEMPLATE_regalloc_if.h"

#include "TEMPLATE_bearch_t.h"

const arch_register_req_t TEMPLATE_class_reg_req_fp = {
	.cls   = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.width = 1,
};
static const unsigned TEMPLATE_limited_fp_f0[] = { (1U << REG_FP_F0) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f0 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f0,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f1[] = { (1U << REG_FP_F1) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f1 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f1,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f2[] = { (1U << REG_FP_F2) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f2 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f2,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f3[] = { (1U << REG_FP_F3) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f3 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f3,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f4[] = { (1U << REG_FP_F4) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f4 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f4,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f5[] = { (1U << REG_FP_F5) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f5 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f5,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f6[] = { (1U << REG_FP_F6) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f6 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f6,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f7[] = { (1U << REG_FP_F7) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f7 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f7,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f8[] = { (1U << REG_FP_F8) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f8 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f8,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f9[] = { (1U << REG_FP_F9) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f9 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f9,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f10[] = { (1U << REG_FP_F10) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f10 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f10,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f11[] = { (1U << REG_FP_F11) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f11 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f11,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f12[] = { (1U << REG_FP_F12) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f12 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f12,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f13[] = { (1U << REG_FP_F13) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f13 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f13,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f14[] = { (1U << REG_FP_F14) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f14 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f14,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_fp_f15[] = { (1U << REG_FP_F15) };
const arch_register_req_t TEMPLATE_single_reg_req_fp_f15 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
	.limited = TEMPLATE_limited_fp_f15,
	.width   = 1,
};
const arch_register_req_t TEMPLATE_class_reg_req_gp = {
	.cls   = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.width = 1,
};
static const unsigned TEMPLATE_limited_gp_r0[] = { (1U << REG_GP_R0) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r0 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r0,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r1[] = { (1U << REG_GP_R1) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r1 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r1,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r2[] = { (1U << REG_GP_R2) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r2 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r2,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r3[] = { (1U << REG_GP_R3) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r3 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r3,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r4[] = { (1U << REG_GP_R4) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r4 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r4,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r5[] = { (1U << REG_GP_R5) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r5 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r5,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r6[] = { (1U << REG_GP_R6) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r6 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r6,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r7[] = { (1U << REG_GP_R7) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r7 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r7,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r8[] = { (1U << REG_GP_R8) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r8 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r8,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r9[] = { (1U << REG_GP_R9) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r9 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r9,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r10[] = { (1U << REG_GP_R10) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r10 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r10,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r11[] = { (1U << REG_GP_R11) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r11 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r11,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r12[] = { (1U << REG_GP_R12) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r12 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r12,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_r13[] = { (1U << REG_GP_R13) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_r13 = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_r13,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_sp[] = { (1U << REG_GP_SP) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_sp = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_sp,
	.width   = 1,
};
static const unsigned TEMPLATE_limited_gp_bp[] = { (1U << REG_GP_BP) };
const arch_register_req_t TEMPLATE_single_reg_req_gp_bp = {
	.cls     = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
	.limited = TEMPLATE_limited_gp_bp,
	.width   = 1,
};


arch_register_class_t TEMPLATE_reg_classes[] = {
	{
		.name      = "TEMPLATE_fp",
		.mode      = NULL,
		.regs      = &TEMPLATE_registers[REG_F0],
		.class_req = &TEMPLATE_class_reg_req_fp,
		.index     = CLASS_TEMPLATE_fp,
		.n_regs    = 16,
	},
	{
		.name      = "TEMPLATE_gp",
		.mode      = NULL,
		.regs      = &TEMPLATE_registers[REG_R0],
		.class_req = &TEMPLATE_class_reg_req_gp,
		.index     = CLASS_TEMPLATE_gp,
		.n_regs    = 16,
	},

};

/** The array of all registers in the TEMPLATE architecture, sorted by its global index.*/
const arch_register_t TEMPLATE_registers[] = {
	{
		.name         = "f0",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f0,
		.index        = REG_FP_F0,
		.global_index = REG_F0,
		.dwarf_number = 0,
		.encoding     = REG_FP_F0,
		.is_virtual   = false,
	},
	{
		.name         = "f1",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f1,
		.index        = REG_FP_F1,
		.global_index = REG_F1,
		.dwarf_number = 0,
		.encoding     = REG_FP_F1,
		.is_virtual   = false,
	},
	{
		.name         = "f2",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f2,
		.index        = REG_FP_F2,
		.global_index = REG_F2,
		.dwarf_number = 0,
		.encoding     = REG_FP_F2,
		.is_virtual   = false,
	},
	{
		.name         = "f3",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f3,
		.index        = REG_FP_F3,
		.global_index = REG_F3,
		.dwarf_number = 0,
		.encoding     = REG_FP_F3,
		.is_virtual   = false,
	},
	{
		.name         = "f4",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f4,
		.index        = REG_FP_F4,
		.global_index = REG_F4,
		.dwarf_number = 0,
		.encoding     = REG_FP_F4,
		.is_virtual   = false,
	},
	{
		.name         = "f5",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f5,
		.index        = REG_FP_F5,
		.global_index = REG_F5,
		.dwarf_number = 0,
		.encoding     = REG_FP_F5,
		.is_virtual   = false,
	},
	{
		.name         = "f6",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f6,
		.index        = REG_FP_F6,
		.global_index = REG_F6,
		.dwarf_number = 0,
		.encoding     = REG_FP_F6,
		.is_virtual   = false,
	},
	{
		.name         = "f7",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f7,
		.index        = REG_FP_F7,
		.global_index = REG_F7,
		.dwarf_number = 0,
		.encoding     = REG_FP_F7,
		.is_virtual   = false,
	},
	{
		.name         = "f8",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f8,
		.index        = REG_FP_F8,
		.global_index = REG_F8,
		.dwarf_number = 0,
		.encoding     = REG_FP_F8,
		.is_virtual   = false,
	},
	{
		.name         = "f9",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f9,
		.index        = REG_FP_F9,
		.global_index = REG_F9,
		.dwarf_number = 0,
		.encoding     = REG_FP_F9,
		.is_virtual   = false,
	},
	{
		.name         = "f10",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f10,
		.index        = REG_FP_F10,
		.global_index = REG_F10,
		.dwarf_number = 0,
		.encoding     = REG_FP_F10,
		.is_virtual   = false,
	},
	{
		.name         = "f11",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f11,
		.index        = REG_FP_F11,
		.global_index = REG_F11,
		.dwarf_number = 0,
		.encoding     = REG_FP_F11,
		.is_virtual   = false,
	},
	{
		.name         = "f12",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f12,
		.index        = REG_FP_F12,
		.global_index = REG_F12,
		.dwarf_number = 0,
		.encoding     = REG_FP_F12,
		.is_virtual   = false,
	},
	{
		.name         = "f13",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f13,
		.index        = REG_FP_F13,
		.global_index = REG_F13,
		.dwarf_number = 0,
		.encoding     = REG_FP_F13,
		.is_virtual   = false,
	},
	{
		.name         = "f14",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f14,
		.index        = REG_FP_F14,
		.global_index = REG_F14,
		.dwarf_number = 0,
		.encoding     = REG_FP_F14,
		.is_virtual   = false,
	},
	{
		.name         = "f15",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_fp],
		.single_req   = &TEMPLATE_single_reg_req_fp_f15,
		.index        = REG_FP_F15,
		.global_index = REG_F15,
		.dwarf_number = 0,
		.encoding     = REG_FP_F15,
		.is_virtual   = false,
	},
	{
		.name         = "r0",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r0,
		.index        = REG_GP_R0,
		.global_index = REG_R0,
		.dwarf_number = 0,
		.encoding     = REG_GP_R0,
		.is_virtual   = false,
	},
	{
		.name         = "r1",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r1,
		.index        = REG_GP_R1,
		.global_index = REG_R1,
		.dwarf_number = 0,
		.encoding     = REG_GP_R1,
		.is_virtual   = false,
	},
	{
		.name         = "r2",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r2,
		.index        = REG_GP_R2,
		.global_index = REG_R2,
		.dwarf_number = 0,
		.encoding     = REG_GP_R2,
		.is_virtual   = false,
	},
	{
		.name         = "r3",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r3,
		.index        = REG_GP_R3,
		.global_index = REG_R3,
		.dwarf_number = 0,
		.encoding     = REG_GP_R3,
		.is_virtual   = false,
	},
	{
		.name         = "r4",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r4,
		.index        = REG_GP_R4,
		.global_index = REG_R4,
		.dwarf_number = 0,
		.encoding     = REG_GP_R4,
		.is_virtual   = false,
	},
	{
		.name         = "r5",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r5,
		.index        = REG_GP_R5,
		.global_index = REG_R5,
		.dwarf_number = 0,
		.encoding     = REG_GP_R5,
		.is_virtual   = false,
	},
	{
		.name         = "r6",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r6,
		.index        = REG_GP_R6,
		.global_index = REG_R6,
		.dwarf_number = 0,
		.encoding     = REG_GP_R6,
		.is_virtual   = false,
	},
	{
		.name         = "r7",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r7,
		.index        = REG_GP_R7,
		.global_index = REG_R7,
		.dwarf_number = 0,
		.encoding     = REG_GP_R7,
		.is_virtual   = false,
	},
	{
		.name         = "r8",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r8,
		.index        = REG_GP_R8,
		.global_index = REG_R8,
		.dwarf_number = 0,
		.encoding     = REG_GP_R8,
		.is_virtual   = false,
	},
	{
		.name         = "r9",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r9,
		.index        = REG_GP_R9,
		.global_index = REG_R9,
		.dwarf_number = 0,
		.encoding     = REG_GP_R9,
		.is_virtual   = false,
	},
	{
		.name         = "r10",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r10,
		.index        = REG_GP_R10,
		.global_index = REG_R10,
		.dwarf_number = 0,
		.encoding     = REG_GP_R10,
		.is_virtual   = false,
	},
	{
		.name         = "r11",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r11,
		.index        = REG_GP_R11,
		.global_index = REG_R11,
		.dwarf_number = 0,
		.encoding     = REG_GP_R11,
		.is_virtual   = false,
	},
	{
		.name         = "r12",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r12,
		.index        = REG_GP_R12,
		.global_index = REG_R12,
		.dwarf_number = 0,
		.encoding     = REG_GP_R12,
		.is_virtual   = false,
	},
	{
		.name         = "r13",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_r13,
		.index        = REG_GP_R13,
		.global_index = REG_R13,
		.dwarf_number = 0,
		.encoding     = REG_GP_R13,
		.is_virtual   = false,
	},
	{
		.name         = "sp",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_sp,
		.index        = REG_GP_SP,
		.global_index = REG_SP,
		.dwarf_number = 0,
		.encoding     = REG_GP_SP,
		.is_virtual   = false,
	},
	{
		.name         = "bp",
		.cls          = &TEMPLATE_reg_classes[CLASS_TEMPLATE_gp],
		.single_req   = &TEMPLATE_single_reg_req_gp_bp,
		.index        = REG_GP_BP,
		.global_index = REG_BP,
		.dwarf_number = 0,
		.encoding     = REG_GP_BP,
		.is_virtual   = false,
	},

};

/**
 * Initializes TEMPLATE register classes.
 */
void TEMPLATE_register_init(void)
{
	TEMPLATE_reg_classes[CLASS_TEMPLATE_fp].mode = mode_F;
	TEMPLATE_reg_classes[CLASS_TEMPLATE_gp].mode = mode_Iu;

}
