OpenCores
URL https://opencores.org/ocsvn/core_arm/core_arm/trunk

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [sparc/] [c_model/] [sparc.c] - Rev 4

Compare with Previous | Blame | View Log

 
typedef struct _proc_state {} proc_state;
typedef struct _insn_ldsb_struct {
/*Load|Store signed byte*/
  int (*func) (struct _insn_ldsb_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldsb_struct;
typedef struct _insn_ldsh_struct {
/*Load|Store signed halfword*/
  int (*func) (struct _insn_ldsh_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldsh_struct;
typedef struct _insn_ldst_ub_struct {
/*Load|Store unsigned byte*/
  int (*func) (struct _insn_ldst_ub_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_ub_struct;
typedef struct _insn_ldst_uh_struct {
/*Load|Store unsigned halfword*/
  int (*func) (struct _insn_ldst_uh_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_uh_struct;
typedef struct _insn_ldst_struct {
/*Load|Store word*/
  int (*func) (struct _insn_ldst_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_struct;
typedef struct _insn_ldst_d_struct {
/*Load|Store doubleword*/
  int (*func) (struct _insn_ldst_d_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_d_struct;
typedef struct _insn_ldst_f_struct {
/*Load|Sore floating point register*/
  int (*func) (struct _insn_ldst_f_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_f_struct;
typedef struct _insn_ldst_df_struct {
/*Load|Sore double floating point register*/
  int (*func) (struct _insn_ldst_df_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_df_struct;
typedef struct _insn_ldst_fsr_struct {
/*Load|Sore floating point state register*/
  int (*func) (struct _insn_ldst_fsr_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_fsr_struct;
typedef struct _insn_stdfq_struct {
/*Store floating point deferred trap queue*/
  int (*func) (struct _insn_stdfq_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_stdfq_struct;
typedef struct _insn_ldst_c_struct {
/*Load|Sore coprocessor register*/
  int (*func) (struct _insn_ldst_c_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_c_struct;
typedef struct _insn_ldst_dc_struct {
/*Load|Sore double coprocessor register*/
  int (*func) (struct _insn_ldst_dc_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_dc_struct;
typedef struct _insn_ldst_csr_struct {
/*Load|Sore double coprocessor state register*/
  int (*func) (struct _insn_ldst_csr_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int ls: 2; /*Load/Store '1'=Store*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldst_csr_struct;
typedef struct _insn_stdcq_struct {
/*Store coprocessor deferred trap queue*/
  int (*func) (struct _insn_stdcq_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_stdcq_struct;
typedef struct _insn_ldstb_struct {
/*Atomic Load-Store unsigned byte*/
  int (*func) (struct _insn_ldstb_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ldstb_struct;
typedef struct _insn_swp_struct {
/*Swap register into memory*/
  int (*func) (struct _insn_swp_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_swp_struct;
typedef struct _insn_sethi_struct {
/*Set upper 22 bits*/
  int (*func) (struct _insn_sethi_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int i22: 23; /*Immidiate 22*/
} insn_sethi_struct;
typedef struct _insn_nop_struct {
/*No op*/
  int (*func) (struct _insn_nop_struct *s, proc_state *state);
  unsigned int x: 23; /**/
} insn_nop_struct;
typedef struct _insn_and_struct {
/*logical and*/
  int (*func) (struct _insn_and_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int n: 2; /*Not '1'=not*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_and_struct;
typedef struct _insn_or_struct {
/*logical or*/
  int (*func) (struct _insn_or_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int n: 2; /*Not '1'=not*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_or_struct;
typedef struct _insn_xor_struct {
/*logical xor*/
  int (*func) (struct _insn_xor_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int n: 2; /*Not '1'=not*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_xor_struct;
typedef struct _insn_sll_struct {
/*shieft left logical*/
  int (*func) (struct _insn_sll_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_sll_struct;
typedef struct _insn_srl_struct {
/*shieft right logical*/
  int (*func) (struct _insn_srl_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_srl_struct;
typedef struct _insn_sra_struct {
/*shieft right arith*/
  int (*func) (struct _insn_sra_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_sra_struct;
typedef struct _insn_sadd_struct {
/*Sub|Add*/
  int (*func) (struct _insn_sadd_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int xx: 2; /*Use carry '1'=use*/
  unsigned int sa: 2; /*Sub/Add '1'=Sub*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_sadd_struct;
typedef struct _insn_tsadd_struct {
/*Tagged Sub|Add*/
  int (*func) (struct _insn_tsadd_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int sa: 2; /*Sub/Add '1'=Sub*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_tsadd_struct;
typedef struct _insn_tsaddtv_struct {
/*Tagged Sub|Add with trap on overflow*/
  int (*func) (struct _insn_tsaddtv_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int sa: 2; /*Sub/Add '1'=Sub*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_tsaddtv_struct;
typedef struct _insn_mulscc_struct {
/*Multiply*/
  int (*func) (struct _insn_mulscc_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int sig: 2; /*Signed '1'=Signed*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_mulscc_struct;
typedef struct _insn_divscc_struct {
/*Divide*/
  int (*func) (struct _insn_divscc_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int cc: 2; /*Modify icc '1'=modify*/
  unsigned int sig: 2; /*Signed '1'=Signed*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_divscc_struct;
typedef struct _insn_sv_struct {
/*Save*/
  int (*func) (struct _insn_sv_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_sv_struct;
typedef struct _insn_rest_struct {
/*Restore*/
  int (*func) (struct _insn_rest_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_rest_struct;
typedef struct _insn_bra_struct {
/*Branch on condition*/
  int (*func) (struct _insn_bra_struct *s, proc_state *state);
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int c: 5; /*Condition code*/
  unsigned int d22: 23; /**/
} insn_bra_struct;
typedef struct _insn_fbra_struct {
/*Branch on floating point condition*/
  int (*func) (struct _insn_fbra_struct *s, proc_state *state);
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int c: 5; /*Condition code*/
  unsigned int d22: 23; /**/
} insn_fbra_struct;
typedef struct _insn_cbra_struct {
/*Branch on coprocessor condition*/
  int (*func) (struct _insn_cbra_struct *s, proc_state *state);
  unsigned int a: 2; /*Alternate space '1'=alternate space*/
  unsigned int c: 5; /*Condition code*/
  unsigned int d22: 23; /**/
} insn_cbra_struct;
typedef struct _insn_jmp_struct {
/*Call and link offset*/
  int (*func) (struct _insn_jmp_struct *s, proc_state *state);
  unsigned int d30: 31; /*Offset 30bit*/
} insn_jmp_struct;
typedef struct _insn_jml_struct {
/*Jump and link*/
  int (*func) (struct _insn_jml_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_jml_struct;
typedef struct _insn_ret_struct {
/*Return from trap*/
  int (*func) (struct _insn_ret_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_ret_struct;
typedef struct _insn_trap_struct {
/*Trap on condition code*/
  int (*func) (struct _insn_trap_struct *s, proc_state *state);
  unsigned int rvd: 2; /**/
  unsigned int c: 5; /*Condition code*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int i: 2; /*Select s2i '1'=sim13*/
  unsigned int s2i: 14; /*op2: simm13 or rs2*/
} insn_trap_struct;
typedef struct _insn_rd_struct {
/*Read state registers*/
  int (*func) (struct _insn_rd_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_rd_struct;
typedef struct _insn_rdp_struct {
/*Read processor state register (rdpsr)*/
  int (*func) (struct _insn_rdp_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_rdp_struct;
typedef struct _insn_rdw_struct {
/*Read windows invalid mask*/
  int (*func) (struct _insn_rdw_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_rdw_struct;
typedef struct _insn_rdt_struct {
/*Read trap base register*/
  int (*func) (struct _insn_rdt_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_rdt_struct;
typedef struct _insn_wd_struct {
/*Write state registers*/
  int (*func) (struct _insn_wd_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_wd_struct;
typedef struct _insn_wdp_struct {
/*Write processor state register (rdpsr)*/
  int (*func) (struct _insn_wdp_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_wdp_struct;
typedef struct _insn_wdw_struct {
/*Write windows invalid mask*/
  int (*func) (struct _insn_wdw_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_wdw_struct;
typedef struct _insn_wdt_struct {
/*Write trap base register*/
  int (*func) (struct _insn_wdt_struct *s, proc_state *state);
  unsigned int rd: 6; /*Destination register*/
  unsigned int rs1: 6; /*Source register 1*/
  unsigned int x: 15; /**/
} insn_wdt_struct;
typedef struct _insn_stbar_struct {
/*Store barrier*/
  int (*func) (struct _insn_stbar_struct *s, proc_state *state);
  unsigned int x: 14; /**/
} insn_stbar_struct;
typedef struct _insn_unimp_struct {
/*Unimplemented*/
  int (*func) (struct _insn_unimp_struct *s, proc_state *state);
  unsigned int rvd: 6; /**/
  unsigned int cst: 23; /**/
} insn_unimp_struct;
typedef union _insn_union {
  insn_ldsb_struct insn_ldsb;
  insn_ldsh_struct insn_ldsh;
  insn_ldst_ub_struct insn_ldst_ub;
  insn_ldst_uh_struct insn_ldst_uh;
  insn_ldst_struct insn_ldst;
  insn_ldst_d_struct insn_ldst_d;
  insn_ldst_f_struct insn_ldst_f;
  insn_ldst_df_struct insn_ldst_df;
  insn_ldst_fsr_struct insn_ldst_fsr;
  insn_stdfq_struct insn_stdfq;
  insn_ldst_c_struct insn_ldst_c;
  insn_ldst_dc_struct insn_ldst_dc;
  insn_ldst_csr_struct insn_ldst_csr;
  insn_stdcq_struct insn_stdcq;
  insn_ldstb_struct insn_ldstb;
  insn_swp_struct insn_swp;
  insn_sethi_struct insn_sethi;
  insn_nop_struct insn_nop;
  insn_and_struct insn_and;
  insn_or_struct insn_or;
  insn_xor_struct insn_xor;
  insn_sll_struct insn_sll;
  insn_srl_struct insn_srl;
  insn_sra_struct insn_sra;
  insn_sadd_struct insn_sadd;
  insn_tsadd_struct insn_tsadd;
  insn_tsaddtv_struct insn_tsaddtv;
  insn_mulscc_struct insn_mulscc;
  insn_divscc_struct insn_divscc;
  insn_sv_struct insn_sv;
  insn_rest_struct insn_rest;
  insn_bra_struct insn_bra;
  insn_fbra_struct insn_fbra;
  insn_cbra_struct insn_cbra;
  insn_jmp_struct insn_jmp;
  insn_jml_struct insn_jml;
  insn_ret_struct insn_ret;
  insn_trap_struct insn_trap;
  insn_rd_struct insn_rd;
  insn_rdp_struct insn_rdp;
  insn_rdw_struct insn_rdw;
  insn_rdt_struct insn_rdt;
  insn_wd_struct insn_wd;
  insn_wdp_struct insn_wdp;
  insn_wdw_struct insn_wdw;
  insn_wdt_struct insn_wdt;
  insn_stbar_struct insn_stbar;
  insn_unimp_struct insn_unimp;
} insn_union;
 int func_insn_ldsb (struct _insn_ldsb_struct *s, proc_state *state) {
/*Load|Store signed byte*/
};
int func_insn_ldsh (struct _insn_ldsh_struct *s, proc_state *state) {
/*Load|Store signed halfword*/
};
int func_insn_ldst_ub (struct _insn_ldst_ub_struct *s, proc_state *state) {
/*Load|Store unsigned byte*/
};
int func_insn_ldst_uh (struct _insn_ldst_uh_struct *s, proc_state *state) {
/*Load|Store unsigned halfword*/
};
int func_insn_ldst (struct _insn_ldst_struct *s, proc_state *state) {
/*Load|Store word*/
};
int func_insn_ldst_d (struct _insn_ldst_d_struct *s, proc_state *state) {
/*Load|Store doubleword*/
};
int func_insn_ldst_f (struct _insn_ldst_f_struct *s, proc_state *state) {
/*Load|Sore floating point register*/
};
int func_insn_ldst_df (struct _insn_ldst_df_struct *s, proc_state *state) {
/*Load|Sore double floating point register*/
};
int func_insn_ldst_fsr (struct _insn_ldst_fsr_struct *s, proc_state *state) {
/*Load|Sore floating point state register*/
};
int func_insn_stdfq (struct _insn_stdfq_struct *s, proc_state *state) {
/*Store floating point deferred trap queue*/
};
int func_insn_ldst_c (struct _insn_ldst_c_struct *s, proc_state *state) {
/*Load|Sore coprocessor register*/
};
int func_insn_ldst_dc (struct _insn_ldst_dc_struct *s, proc_state *state) {
/*Load|Sore double coprocessor register*/
};
int func_insn_ldst_csr (struct _insn_ldst_csr_struct *s, proc_state *state) {
/*Load|Sore double coprocessor state register*/
};
int func_insn_stdcq (struct _insn_stdcq_struct *s, proc_state *state) {
/*Store coprocessor deferred trap queue*/
};
int func_insn_ldstb (struct _insn_ldstb_struct *s, proc_state *state) {
/*Atomic Load-Store unsigned byte*/
};
int func_insn_swp (struct _insn_swp_struct *s, proc_state *state) {
/*Swap register into memory*/
};
int func_insn_sethi (struct _insn_sethi_struct *s, proc_state *state) {
/*Set upper 22 bits*/
};
int func_insn_nop (struct _insn_nop_struct *s, proc_state *state) {
/*No op*/
};
int func_insn_and (struct _insn_and_struct *s, proc_state *state) {
/*logical and*/
};
int func_insn_or (struct _insn_or_struct *s, proc_state *state) {
/*logical or*/
};
int func_insn_xor (struct _insn_xor_struct *s, proc_state *state) {
/*logical xor*/
};
int func_insn_sll (struct _insn_sll_struct *s, proc_state *state) {
/*shieft left logical*/
};
int func_insn_srl (struct _insn_srl_struct *s, proc_state *state) {
/*shieft right logical*/
};
int func_insn_sra (struct _insn_sra_struct *s, proc_state *state) {
/*shieft right arith*/
};
int func_insn_sadd (struct _insn_sadd_struct *s, proc_state *state) {
/*Sub|Add*/
};
int func_insn_tsadd (struct _insn_tsadd_struct *s, proc_state *state) {
/*Tagged Sub|Add*/
};
int func_insn_tsaddtv (struct _insn_tsaddtv_struct *s, proc_state *state) {
/*Tagged Sub|Add with trap on overflow*/
};
int func_insn_mulscc (struct _insn_mulscc_struct *s, proc_state *state) {
/*Multiply*/
};
int func_insn_divscc (struct _insn_divscc_struct *s, proc_state *state) {
/*Divide*/
};
int func_insn_sv (struct _insn_sv_struct *s, proc_state *state) {
/*Save*/
};
int func_insn_rest (struct _insn_rest_struct *s, proc_state *state) {
/*Restore*/
};
int func_insn_bra (struct _insn_bra_struct *s, proc_state *state) {
/*Branch on condition*/
};
int func_insn_fbra (struct _insn_fbra_struct *s, proc_state *state) {
/*Branch on floating point condition*/
};
int func_insn_cbra (struct _insn_cbra_struct *s, proc_state *state) {
/*Branch on coprocessor condition*/
};
int func_insn_jmp (struct _insn_jmp_struct *s, proc_state *state) {
/*Call and link offset*/
};
int func_insn_jml (struct _insn_jml_struct *s, proc_state *state) {
/*Jump and link*/
};
int func_insn_ret (struct _insn_ret_struct *s, proc_state *state) {
/*Return from trap*/
};
int func_insn_trap (struct _insn_trap_struct *s, proc_state *state) {
/*Trap on condition code*/
};
int func_insn_rd (struct _insn_rd_struct *s, proc_state *state) {
/*Read state registers*/
};
int func_insn_rdp (struct _insn_rdp_struct *s, proc_state *state) {
/*Read processor state register (rdpsr)*/
};
int func_insn_rdw (struct _insn_rdw_struct *s, proc_state *state) {
/*Read windows invalid mask*/
};
int func_insn_rdt (struct _insn_rdt_struct *s, proc_state *state) {
/*Read trap base register*/
};
int func_insn_wd (struct _insn_wd_struct *s, proc_state *state) {
/*Write state registers*/
};
int func_insn_wdp (struct _insn_wdp_struct *s, proc_state *state) {
/*Write processor state register (rdpsr)*/
};
int func_insn_wdw (struct _insn_wdw_struct *s, proc_state *state) {
/*Write windows invalid mask*/
};
int func_insn_wdt (struct _insn_wdt_struct *s, proc_state *state) {
/*Write trap base register*/
};
int func_insn_stbar (struct _insn_stbar_struct *s, proc_state *state) {
/*Store barrier*/
};
int func_insn_unimp (struct _insn_unimp_struct *s, proc_state *state) {
/*Unimplemented*/
};
unsigned int init_insn_ldsb(unsigned int insn, insn_union *s) {
s->insn_ldsb.func=func_insn_ldsb;
s->insn_ldsb.rd=((insn>>25)&0x1f);
s->insn_ldsb.a=((insn>>23)&0x1);
s->insn_ldsb.rs1=((insn>>14)&0x1f);
s->insn_ldsb.i=((insn>>13)&0x1);
s->insn_ldsb.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldsh(unsigned int insn, insn_union *s) {
s->insn_ldsh.func=func_insn_ldsh;
s->insn_ldsh.rd=((insn>>25)&0x1f);
s->insn_ldsh.a=((insn>>23)&0x1);
s->insn_ldsh.rs1=((insn>>14)&0x1f);
s->insn_ldsh.i=((insn>>13)&0x1);
s->insn_ldsh.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_ub(unsigned int insn, insn_union *s) {
s->insn_ldst_ub.func=func_insn_ldst_ub;
s->insn_ldst_ub.rd=((insn>>25)&0x1f);
s->insn_ldst_ub.a=((insn>>23)&0x1);
s->insn_ldst_ub.ls=((insn>>21)&0x1);
s->insn_ldst_ub.rs1=((insn>>14)&0x1f);
s->insn_ldst_ub.i=((insn>>13)&0x1);
s->insn_ldst_ub.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_uh(unsigned int insn, insn_union *s) {
s->insn_ldst_uh.func=func_insn_ldst_uh;
s->insn_ldst_uh.rd=((insn>>25)&0x1f);
s->insn_ldst_uh.a=((insn>>23)&0x1);
s->insn_ldst_uh.ls=((insn>>21)&0x1);
s->insn_ldst_uh.rs1=((insn>>14)&0x1f);
s->insn_ldst_uh.i=((insn>>13)&0x1);
s->insn_ldst_uh.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst(unsigned int insn, insn_union *s) {
s->insn_ldst.func=func_insn_ldst;
s->insn_ldst.rd=((insn>>25)&0x1f);
s->insn_ldst.a=((insn>>23)&0x1);
s->insn_ldst.ls=((insn>>21)&0x1);
s->insn_ldst.rs1=((insn>>14)&0x1f);
s->insn_ldst.i=((insn>>13)&0x1);
s->insn_ldst.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_d(unsigned int insn, insn_union *s) {
s->insn_ldst_d.func=func_insn_ldst_d;
s->insn_ldst_d.rd=((insn>>25)&0x1f);
s->insn_ldst_d.a=((insn>>23)&0x1);
s->insn_ldst_d.ls=((insn>>21)&0x1);
s->insn_ldst_d.rs1=((insn>>14)&0x1f);
s->insn_ldst_d.i=((insn>>13)&0x1);
s->insn_ldst_d.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_f(unsigned int insn, insn_union *s) {
s->insn_ldst_f.func=func_insn_ldst_f;
s->insn_ldst_f.rd=((insn>>25)&0x1f);
s->insn_ldst_f.ls=((insn>>21)&0x1);
s->insn_ldst_f.rs1=((insn>>14)&0x1f);
s->insn_ldst_f.i=((insn>>13)&0x1);
s->insn_ldst_f.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_df(unsigned int insn, insn_union *s) {
s->insn_ldst_df.func=func_insn_ldst_df;
s->insn_ldst_df.rd=((insn>>25)&0x1f);
s->insn_ldst_df.ls=((insn>>21)&0x1);
s->insn_ldst_df.rs1=((insn>>14)&0x1f);
s->insn_ldst_df.i=((insn>>13)&0x1);
s->insn_ldst_df.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_fsr(unsigned int insn, insn_union *s) {
s->insn_ldst_fsr.func=func_insn_ldst_fsr;
s->insn_ldst_fsr.rd=((insn>>25)&0x1f);
s->insn_ldst_fsr.ls=((insn>>21)&0x1);
s->insn_ldst_fsr.rs1=((insn>>14)&0x1f);
s->insn_ldst_fsr.i=((insn>>13)&0x1);
s->insn_ldst_fsr.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_stdfq(unsigned int insn, insn_union *s) {
s->insn_stdfq.func=func_insn_stdfq;
s->insn_stdfq.rd=((insn>>25)&0x1f);
s->insn_stdfq.rs1=((insn>>14)&0x1f);
s->insn_stdfq.i=((insn>>13)&0x1);
s->insn_stdfq.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_c(unsigned int insn, insn_union *s) {
s->insn_ldst_c.func=func_insn_ldst_c;
s->insn_ldst_c.rd=((insn>>25)&0x1f);
s->insn_ldst_c.ls=((insn>>21)&0x1);
s->insn_ldst_c.rs1=((insn>>14)&0x1f);
s->insn_ldst_c.i=((insn>>13)&0x1);
s->insn_ldst_c.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_dc(unsigned int insn, insn_union *s) {
s->insn_ldst_dc.func=func_insn_ldst_dc;
s->insn_ldst_dc.rd=((insn>>25)&0x1f);
s->insn_ldst_dc.ls=((insn>>21)&0x1);
s->insn_ldst_dc.rs1=((insn>>14)&0x1f);
s->insn_ldst_dc.i=((insn>>13)&0x1);
s->insn_ldst_dc.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldst_csr(unsigned int insn, insn_union *s) {
s->insn_ldst_csr.func=func_insn_ldst_csr;
s->insn_ldst_csr.rd=((insn>>25)&0x1f);
s->insn_ldst_csr.ls=((insn>>21)&0x1);
s->insn_ldst_csr.rs1=((insn>>14)&0x1f);
s->insn_ldst_csr.i=((insn>>13)&0x1);
s->insn_ldst_csr.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_stdcq(unsigned int insn, insn_union *s) {
s->insn_stdcq.func=func_insn_stdcq;
s->insn_stdcq.rd=((insn>>25)&0x1f);
s->insn_stdcq.rs1=((insn>>14)&0x1f);
s->insn_stdcq.i=((insn>>13)&0x1);
s->insn_stdcq.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ldstb(unsigned int insn, insn_union *s) {
s->insn_ldstb.func=func_insn_ldstb;
s->insn_ldstb.rd=((insn>>25)&0x1f);
s->insn_ldstb.a=((insn>>23)&0x1);
s->insn_ldstb.rs1=((insn>>14)&0x1f);
s->insn_ldstb.i=((insn>>13)&0x1);
s->insn_ldstb.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_swp(unsigned int insn, insn_union *s) {
s->insn_swp.func=func_insn_swp;
s->insn_swp.rd=((insn>>25)&0x1f);
s->insn_swp.a=((insn>>23)&0x1);
s->insn_swp.rs1=((insn>>14)&0x1f);
s->insn_swp.i=((insn>>13)&0x1);
s->insn_swp.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_sethi(unsigned int insn, insn_union *s) {
s->insn_sethi.func=func_insn_sethi;
s->insn_sethi.rd=((insn>>25)&0x1f);
s->insn_sethi.i22=((insn>>0)&0x3fffff);
 return 1;};
 unsigned int init_insn_nop(unsigned int insn, insn_union *s) {
s->insn_nop.func=func_insn_nop;
s->insn_nop.x=((insn>>0)&0x3fffff);
 return 1;};
 unsigned int init_insn_and(unsigned int insn, insn_union *s) {
s->insn_and.func=func_insn_and;
s->insn_and.rd=((insn>>25)&0x1f);
s->insn_and.cc=((insn>>23)&0x1);
s->insn_and.n=((insn>>21)&0x1);
s->insn_and.rs1=((insn>>14)&0x1f);
s->insn_and.i=((insn>>13)&0x1);
s->insn_and.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_or(unsigned int insn, insn_union *s) {
s->insn_or.func=func_insn_or;
s->insn_or.rd=((insn>>25)&0x1f);
s->insn_or.cc=((insn>>23)&0x1);
s->insn_or.n=((insn>>21)&0x1);
s->insn_or.rs1=((insn>>14)&0x1f);
s->insn_or.i=((insn>>13)&0x1);
s->insn_or.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_xor(unsigned int insn, insn_union *s) {
s->insn_xor.func=func_insn_xor;
s->insn_xor.rd=((insn>>25)&0x1f);
s->insn_xor.cc=((insn>>23)&0x1);
s->insn_xor.n=((insn>>21)&0x1);
s->insn_xor.rs1=((insn>>14)&0x1f);
s->insn_xor.i=((insn>>13)&0x1);
s->insn_xor.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_sll(unsigned int insn, insn_union *s) {
s->insn_sll.func=func_insn_sll;
s->insn_sll.rd=((insn>>25)&0x1f);
s->insn_sll.rs1=((insn>>14)&0x1f);
s->insn_sll.i=((insn>>13)&0x1);
s->insn_sll.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_srl(unsigned int insn, insn_union *s) {
s->insn_srl.func=func_insn_srl;
s->insn_srl.rd=((insn>>25)&0x1f);
s->insn_srl.rs1=((insn>>14)&0x1f);
s->insn_srl.i=((insn>>13)&0x1);
s->insn_srl.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_sra(unsigned int insn, insn_union *s) {
s->insn_sra.func=func_insn_sra;
s->insn_sra.rd=((insn>>25)&0x1f);
s->insn_sra.rs1=((insn>>14)&0x1f);
s->insn_sra.i=((insn>>13)&0x1);
s->insn_sra.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_sadd(unsigned int insn, insn_union *s) {
s->insn_sadd.func=func_insn_sadd;
s->insn_sadd.rd=((insn>>25)&0x1f);
s->insn_sadd.cc=((insn>>23)&0x1);
s->insn_sadd.xx=((insn>>22)&0x1);
s->insn_sadd.sa=((insn>>21)&0x1);
s->insn_sadd.rs1=((insn>>14)&0x1f);
s->insn_sadd.i=((insn>>13)&0x1);
s->insn_sadd.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_tsadd(unsigned int insn, insn_union *s) {
s->insn_tsadd.func=func_insn_tsadd;
s->insn_tsadd.rd=((insn>>25)&0x1f);
s->insn_tsadd.sa=((insn>>19)&0x1);
s->insn_tsadd.rs1=((insn>>14)&0x1f);
s->insn_tsadd.i=((insn>>13)&0x1);
s->insn_tsadd.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_tsaddtv(unsigned int insn, insn_union *s) {
s->insn_tsaddtv.func=func_insn_tsaddtv;
s->insn_tsaddtv.rd=((insn>>25)&0x1f);
s->insn_tsaddtv.sa=((insn>>19)&0x1);
s->insn_tsaddtv.rs1=((insn>>14)&0x1f);
s->insn_tsaddtv.i=((insn>>13)&0x1);
s->insn_tsaddtv.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_mulscc(unsigned int insn, insn_union *s) {
s->insn_mulscc.func=func_insn_mulscc;
s->insn_mulscc.rd=((insn>>25)&0x1f);
s->insn_mulscc.cc=((insn>>23)&0x1);
s->insn_mulscc.sig=((insn>>19)&0x1);
s->insn_mulscc.rs1=((insn>>14)&0x1f);
s->insn_mulscc.i=((insn>>13)&0x1);
s->insn_mulscc.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_divscc(unsigned int insn, insn_union *s) {
s->insn_divscc.func=func_insn_divscc;
s->insn_divscc.rd=((insn>>25)&0x1f);
s->insn_divscc.cc=((insn>>23)&0x1);
s->insn_divscc.sig=((insn>>19)&0x1);
s->insn_divscc.rs1=((insn>>14)&0x1f);
s->insn_divscc.i=((insn>>13)&0x1);
s->insn_divscc.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_sv(unsigned int insn, insn_union *s) {
s->insn_sv.func=func_insn_sv;
s->insn_sv.rd=((insn>>25)&0x1f);
s->insn_sv.rs1=((insn>>14)&0x1f);
s->insn_sv.i=((insn>>13)&0x1);
s->insn_sv.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_rest(unsigned int insn, insn_union *s) {
s->insn_rest.func=func_insn_rest;
s->insn_rest.rd=((insn>>25)&0x1f);
s->insn_rest.rs1=((insn>>14)&0x1f);
s->insn_rest.i=((insn>>13)&0x1);
s->insn_rest.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_bra(unsigned int insn, insn_union *s) {
s->insn_bra.func=func_insn_bra;
s->insn_bra.a=((insn>>29)&0x1);
s->insn_bra.c=((insn>>25)&0xf);
s->insn_bra.d22=((insn>>0)&0x3fffff);
 return 1;};
 unsigned int init_insn_fbra(unsigned int insn, insn_union *s) {
s->insn_fbra.func=func_insn_fbra;
s->insn_fbra.a=((insn>>29)&0x1);
s->insn_fbra.c=((insn>>25)&0xf);
s->insn_fbra.d22=((insn>>0)&0x3fffff);
 return 1;};
 unsigned int init_insn_cbra(unsigned int insn, insn_union *s) {
s->insn_cbra.func=func_insn_cbra;
s->insn_cbra.a=((insn>>29)&0x1);
s->insn_cbra.c=((insn>>25)&0xf);
s->insn_cbra.d22=((insn>>0)&0x3fffff);
 return 1;};
 unsigned int init_insn_jmp(unsigned int insn, insn_union *s) {
s->insn_jmp.func=func_insn_jmp;
s->insn_jmp.d30=((insn>>0)&0xffffffff);
 return 1;};
 unsigned int init_insn_jml(unsigned int insn, insn_union *s) {
s->insn_jml.func=func_insn_jml;
s->insn_jml.rd=((insn>>25)&0x1f);
s->insn_jml.rs1=((insn>>14)&0x1f);
s->insn_jml.i=((insn>>13)&0x1);
s->insn_jml.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_ret(unsigned int insn, insn_union *s) {
s->insn_ret.func=func_insn_ret;
s->insn_ret.rd=((insn>>25)&0x1f);
s->insn_ret.rs1=((insn>>14)&0x1f);
s->insn_ret.i=((insn>>13)&0x1);
s->insn_ret.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_trap(unsigned int insn, insn_union *s) {
s->insn_trap.func=func_insn_trap;
s->insn_trap.rvd=((insn>>29)&0x1);
s->insn_trap.c=((insn>>25)&0xf);
s->insn_trap.rs1=((insn>>14)&0x1f);
s->insn_trap.i=((insn>>13)&0x1);
s->insn_trap.s2i=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_rd(unsigned int insn, insn_union *s) {
s->insn_rd.func=func_insn_rd;
s->insn_rd.rd=((insn>>25)&0x1f);
s->insn_rd.rs1=((insn>>14)&0x1f);
s->insn_rd.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_rdp(unsigned int insn, insn_union *s) {
s->insn_rdp.func=func_insn_rdp;
s->insn_rdp.rd=((insn>>25)&0x1f);
s->insn_rdp.rs1=((insn>>14)&0x1f);
s->insn_rdp.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_rdw(unsigned int insn, insn_union *s) {
s->insn_rdw.func=func_insn_rdw;
s->insn_rdw.rd=((insn>>25)&0x1f);
s->insn_rdw.rs1=((insn>>14)&0x1f);
s->insn_rdw.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_rdt(unsigned int insn, insn_union *s) {
s->insn_rdt.func=func_insn_rdt;
s->insn_rdt.rd=((insn>>25)&0x1f);
s->insn_rdt.rs1=((insn>>14)&0x1f);
s->insn_rdt.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_wd(unsigned int insn, insn_union *s) {
s->insn_wd.func=func_insn_wd;
s->insn_wd.rd=((insn>>25)&0x1f);
s->insn_wd.rs1=((insn>>14)&0x1f);
s->insn_wd.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_wdp(unsigned int insn, insn_union *s) {
s->insn_wdp.func=func_insn_wdp;
s->insn_wdp.rd=((insn>>25)&0x1f);
s->insn_wdp.rs1=((insn>>14)&0x1f);
s->insn_wdp.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_wdw(unsigned int insn, insn_union *s) {
s->insn_wdw.func=func_insn_wdw;
s->insn_wdw.rd=((insn>>25)&0x1f);
s->insn_wdw.rs1=((insn>>14)&0x1f);
s->insn_wdw.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_wdt(unsigned int insn, insn_union *s) {
s->insn_wdt.func=func_insn_wdt;
s->insn_wdt.rd=((insn>>25)&0x1f);
s->insn_wdt.rs1=((insn>>14)&0x1f);
s->insn_wdt.x=((insn>>0)&0x3fff);
 return 1;};
 unsigned int init_insn_stbar(unsigned int insn, insn_union *s) {
s->insn_stbar.func=func_insn_stbar;
s->insn_stbar.x=((insn>>0)&0x1fff);
 return 1;};
 unsigned int init_insn_unimp(unsigned int insn, insn_union *s) {
s->insn_unimp.func=func_insn_unimp;
s->insn_unimp.rvd=((insn>>25)&0x1f);
s->insn_unimp.cst=((insn>>0)&0x3fffff);
 return 1;};
 
 
 
 
unsigned int decode(unsigned int insn, insn_union *s) {
{
switch (((insn>>30)&0x3)) { 
case 0x0:
{
 {
 switch (((insn>>24)&0x1)) { 
 case 0x0:
 {
  {
  switch (((insn>>23)&0x1)) { 
  case 0x0:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {return init_insn_unimp(insn,s);
   };break;
   }}
  };break;
  case 0x1:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {return init_insn_bra(insn,s);
   };break;
   }}
  };break;
  }}
 };break;
 case 0x1:
 {
  {
  switch (((insn>>23)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x1:
   {return init_insn_cbra(insn,s);
   };break;
   case 0x0:
   {return init_insn_fbra(insn,s);
   };break;
   }}
  };break;
  case 0x0:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {
    {
    switch (((insn>>25)&0x1f)) { 
    case 0x0:
    {return init_insn_nop(insn,s);
    };break;
    }}
    /*default:*/ return init_insn_sethi(insn,s);
   };break;
   }}
  };break;
  }}
 };break;
 }}
};break;
case 0x1:
{
 {
 switch (((insn>>24)&0x1)) { 
 case 0x1:
 {
  {
  switch (((insn>>23)&0x1)) { 
  case 0x0:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x0:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x0:
      {
       {
       switch (((insn>>25)&0x1f)) { 
       case 0x0:
       {
        {
        switch (((insn>>13)&0x3f)) { 
        case 0x1e:
        {return init_insn_stbar(insn,s);
        };break;
        }}
       };break;
       }}
       /*default:*/ return init_insn_rd(insn,s);
      };break;
      case 0x1:
      {return init_insn_rdp(insn,s);
      };break;
      }}
     };break;
     case 0x1:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_rdt(insn,s);
      };break;
      case 0x0:
      {return init_insn_rdw(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   case 0x0:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x1:
     {return init_insn_tsaddtv(insn,s);
     };break;
     case 0x0:
     {return init_insn_tsadd(insn,s);
     };break;
     }}
    };break;
    case 0x1:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_sra(insn,s);
      };break;
      case 0x0:
      {return init_insn_srl(insn,s);
      };break;
      }}
     };break;
     case 0x0:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_sll(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  case 0x1:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_wdt(insn,s);
      };break;
      case 0x0:
      {return init_insn_wdw(insn,s);
      };break;
      }}
     };break;
     case 0x0:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_wdp(insn,s);
      };break;
      case 0x0:
      {return init_insn_wd(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   case 0x1:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x0:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x0:
      {return init_insn_trap(insn,s);
      };break;
      }}
     };break;
     case 0x0:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_ret(insn,s);
      };break;
      case 0x0:
      {return init_insn_jml(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    case 0x1:
    {
     {
     switch (((insn>>20)&0x1)) { 
     case 0x0:
     {
      {
      switch (((insn>>19)&0x1)) { 
      case 0x1:
      {return init_insn_rest(insn,s);
      };break;
      case 0x0:
      {return init_insn_sv(insn,s);
      };break;
      }}
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  }}
 };break;
 case 0x0:
 {
  {
  switch (((insn>>20)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>21)&0x1)) { 
    case 0x1:
    {return init_insn_divscc(insn,s);
    };break;
    case 0x0:
    {return init_insn_mulscc(insn,s);
    };break;
    }}
   };break;
   case 0x0:
   {
    {
    switch (((insn>>19)&0x1)) { 
    case 0x1:
    {return init_insn_xor(insn,s);
    };break;
    case 0x0:
    {return init_insn_or(insn,s);
    };break;
    }}
   };break;
   }}
  };break;
  case 0x0:
  {
   {
   switch (((insn>>19)&0x1)) { 
   case 0x0:
   {return init_insn_sadd(insn,s);
   };break;
   case 0x1:
   {
    {
    switch (((insn>>22)&0x1)) { 
    case 0x0:
    {return init_insn_and(insn,s);
    };break;
    }}
   };break;
   }}
  };break;
  }}
 };break;
 }}
};break;
case 0x2:
{return init_insn_jmp(insn,s);
};break;
case 0x3:
{
 {
 switch (((insn>>24)&0x1)) { 
 case 0x0:
 {
  {
  switch (((insn>>22)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>21)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>20)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {return init_insn_swp(insn,s);
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {return init_insn_ldstb(insn,s);
     };break;
     }}
    };break;
    }}
   };break;
   case 0x0:
   {
    {
    switch (((insn>>20)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x0:
     {return init_insn_ldsh(insn,s);
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {return init_insn_ldsb(insn,s);
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  case 0x0:
  {
   {
   switch (((insn>>20)&0x1)) { 
   case 0x1:
   {
    {
    switch (((insn>>19)&0x1)) { 
    case 0x1:
    {return init_insn_ldst_d(insn,s);
    };break;
    case 0x0:
    {return init_insn_ldst_uh(insn,s);
    };break;
    }}
   };break;
   case 0x0:
   {
    {
    switch (((insn>>19)&0x1)) { 
    case 0x0:
    {return init_insn_ldst(insn,s);
    };break;
    case 0x1:
    {return init_insn_ldst_ub(insn,s);
    };break;
    }}
   };break;
   }}
  };break;
  }}
 };break;
 case 0x1:
 {
  {
  switch (((insn>>23)&0x1)) { 
  case 0x1:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {
    {
    switch (((insn>>20)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {
      {
      switch (((insn>>21)&0x1)) { 
      case 0x1:
      {return init_insn_stdcq(insn,s);
      };break;
      }}
      /*default:*/ return init_insn_ldst_dc(insn,s);
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {return init_insn_ldst_csr(insn,s);
     };break;
     case 0x0:
     {return init_insn_ldst_c(insn,s);
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  case 0x0:
  {
   {
   switch (((insn>>22)&0x1)) { 
   case 0x0:
   {
    {
    switch (((insn>>20)&0x1)) { 
    case 0x1:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x0:
     {
      {
      switch (((insn>>21)&0x1)) { 
      case 0x1:
      {return init_insn_stdfq(insn,s);
      };break;
      }}
     };break;
     case 0x1:
     {return init_insn_ldst_df(insn,s);
     };break;
     }}
    };break;
    case 0x0:
    {
     {
     switch (((insn>>19)&0x1)) { 
     case 0x1:
     {return init_insn_ldst_fsr(insn,s);
     };break;
     case 0x0:
     {return init_insn_ldst_f(insn,s);
     };break;
     }}
    };break;
    }}
   };break;
   }}
  };break;
  }}
 };break;
 }}
};break;
}}
 
return 0;
};
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.