summaryrefslogtreecommitdiff
path: root/arch/armv7/thumb2_disasm/spec.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2024-03-05 19:50:13 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2024-03-05 20:34:34 -0500
commite093c21ed880ac3eb72119be15093ee04f8ce299 (patch)
tree9f720ebdc0ae415734b1199ed341668c69710a94 /arch/armv7/thumb2_disasm/spec.h
parent0609276712622908254065546102381466033141 (diff)
Move architecture modules into the API repo
Diffstat (limited to 'arch/armv7/thumb2_disasm/spec.h')
-rw-r--r--arch/armv7/thumb2_disasm/spec.h205
1 files changed, 205 insertions, 0 deletions
diff --git a/arch/armv7/thumb2_disasm/spec.h b/arch/armv7/thumb2_disasm/spec.h
new file mode 100644
index 00000000..56613067
--- /dev/null
+++ b/arch/armv7/thumb2_disasm/spec.h
@@ -0,0 +1,205 @@
+int thumb_root(struct decomp_request *req, struct decomp_result *res);
+
+/* these are the <foo> and <bar> found in the spec's format strings */
+enum decomp_field {
+ FIELD_UNINIT=0,
+ FIELD_A,
+ FIELD_APSR_C,
+ FIELD_B,
+ FIELD_CRd,
+ FIELD_CRm,
+ FIELD_CRn,
+ FIELD_D,
+ FIELD_DM,
+ FIELD_DN,
+ FIELD_Dd,
+ FIELD_Dm,
+ FIELD_E,
+ FIELD_F,
+ FIELD_FPSCR,
+ FIELD_H,
+ FIELD_I,
+ FIELD_I1,
+ FIELD_InstrSet_ARM,
+ FIELD_J1,
+ FIELD_K1,
+ FIELD_L,
+ FIELD_M,
+ FIELD_M_check,
+ FIELD_N,
+ FIELD_NSACR_RFR,
+ FIELD_P,
+ FIELD_Q,
+ FIELD_Qd,
+ FIELD_Qm,
+ FIELD_R,
+ FIELD_RM,
+ FIELD_Ra,
+ FIELD_Rd,
+ FIELD_RdHi,
+ FIELD_RdLo,
+ FIELD_Rdm,
+ FIELD_Rdn,
+ FIELD_Rm,
+ FIELD_Rm2,
+ FIELD_Rm_check,
+ FIELD_Rn,
+ FIELD_Rt,
+ FIELD_Rt2,
+ FIELD_Rt_mrc,
+ FIELD_S,
+ FIELD_T,
+ FIELD_U,
+ FIELD_Vd,
+ FIELD_Vn,
+ FIELD_Vm,
+ FIELD_Vm_check,
+ FIELD_W,
+ FIELD_X1,
+ FIELD_a,
+ FIELD_add,
+ FIELD_advsimd,
+ FIELD_affectA,
+ FIELD_affectF,
+ FIELD_affectI,
+ FIELD_align,
+ FIELD_alignment,
+ FIELD_barrier_option,
+ FIELD_bytes,
+ FIELD_carry,
+ FIELD_cc,
+ FIELD_changemode,
+ FIELD_cmode,
+ FIELD_cond,
+ FIELD_coproc,
+ FIELD_cp,
+ FIELD_d,
+ FIELD_d2,
+ FIELD_d3,
+ FIELD_d4,
+ FIELD_dHi,
+ FIELD_dLo,
+ FIELD_dest_unsigned,
+ FIELD_disable,
+ FIELD_double_to_single,
+ FIELD_dp_operation,
+ FIELD_dt,
+ FIELD_dt_suffix,
+ FIELD_ebytes,
+ FIELD_elements,
+ FIELD_enable,
+ FIELD_esize,
+ FIELD_fbits,
+ FIELD_firstcond,
+ FIELD_floating_point,
+ FIELD_fmt_idx,
+ FIELD_frac_bits,
+ FIELD_half_to_single,
+ FIELD_i,
+ FIELD_im,
+ FIELD_imm,
+ FIELD_imm10,
+ FIELD_imm10H,
+ FIELD_imm10L,
+ FIELD_imm11,
+ FIELD_imm12,
+ FIELD_imm16,
+ FIELD_imm2,
+ FIELD_imm3,
+ FIELD_imm32,
+ FIELD_imm4,
+ FIELD_imm4H,
+ FIELD_imm4L,
+ FIELD_imm5,
+ FIELD_imm6,
+ FIELD_imm64l,
+ FIELD_imm64h,
+ FIELD_imm7,
+ FIELD_imm8,
+ FIELD_imod,
+ FIELD_inc,
+ FIELD_increment,
+ FIELD_index,
+ FIELD_index_align,
+ FIELD_is_tbh,
+ FIELD_is_vtbl,
+ FIELD_iword,
+ FIELD_len,
+ FIELD_length,
+ FIELD_list,
+ FIELD_long_destination,
+ FIELD_lowbit,
+ FIELD_lsbit,
+ FIELD_m,
+ FIELD_m_high,
+ FIELD_m_swap,
+ FIELD_mask,
+ FIELD_mask0,
+ FIELD_mask1,
+ FIELD_mode,
+ FIELD_msb,
+ FIELD_msbit,
+ FIELD_n,
+ FIELD_n_high,
+ FIELD_op,
+ FIELD_op1,
+ FIELD_op1_neg,
+ FIELD_op2,
+ FIELD_opc1,
+ FIELD_opc2,
+ FIELD_opc3,
+ FIELD_opcode,
+ FIELD_option,
+ FIELD_position,
+ FIELD_postindex,
+ FIELD_quadword_operation,
+ FIELD_read_spsr,
+ FIELD_register_form,
+ FIELD_register_index,
+ FIELD_register_list,
+ FIELD_registers,
+ FIELD_registers_indexed,
+ FIELD_regs,
+ FIELD_regs_n,
+ FIELD_rotate,
+ FIELD_rotation,
+ FIELD_round,
+ FIELD_round_mode,
+ FIELD_round_nearest,
+ FIELD_round_zero,
+ FIELD_SYSm,
+ FIELD_sat_imm,
+ FIELD_saturate_to,
+ FIELD_set_bigend,
+ FIELD_setflags,
+ FIELD_sf,
+ FIELD_sh,
+ FIELD_shift_n,
+ FIELD_shift_t,
+ FIELD_single_regs,
+ FIELD_single_register,
+ FIELD_size,
+ FIELD_size_table,
+ FIELD_src_unsigned,
+ FIELD_sx,
+ FIELD_sz,
+ FIELD_t,
+ FIELD_t2,
+ FIELD_tb,
+ FIELD_tbform,
+ FIELD_td,
+ FIELD_toARM,
+ FIELD_to_fixed,
+ FIELD_to_integer,
+ FIELD_type,
+ FIELD_unsigned,
+ FIELD_wback,
+ FIELD_width,
+ FIELD_widthm1,
+ FIELD_wordhigher,
+ FIELD_write_g,
+ FIELD_write_nzcvq,
+ FIELD_write_spsr,
+ FIELD_x,
+ FIELD_MAX
+};