cpu_arm_instr.cc File Reference

Back to the index.

Macros | Functions | Variables
cpu_arm_instr.cc File Reference
#include "cpu_arm_instr_misc.cc"
#include "cpu_dyntrans.cc"

Go to the source code of this file.

Macros

#define Y(n)
 
#define cond_instr(n)   ( arm_cond_instr_ ## n [condition_code] )
 
#define DYNTRANS_TO_BE_TRANSLATED_HEAD
 
#define DYNTRANS_TO_BE_TRANSLATED_TAIL
 

Functions

 X (invalid)
 
 X (nop)
 
 X (b)
 
 Y (b) X(b_samepage)
 
 X (b_samepage__eq)
 
 X (b_samepage__ne)
 
 X (b_samepage__cs)
 
 X (b_samepage__cc)
 
 X (b_samepage__mi)
 
 X (b_samepage__pl)
 
 X (b_samepage__vs)
 
 X (b_samepage__vc)
 
 X (b_samepage__hi)
 
 X (b_samepage__ls)
 
 X (b_samepage__ge)
 
 X (b_samepage__lt)
 
 X (b_samepage__gt)
 
 X (b_samepage__le)
 
 X (bx)
 
 Y (bx) X(bx_trace)
 
 Y (bx_trace) X(bl)
 
 Y (bl) X(blx)
 
 Y (blx) X(bl_trace)
 
 Y (bl_trace) X(bl_samepage)
 
 Y (bl_samepage) X(bl_samepage_trace)
 
 Y (bl_samepage_trace) X(clz)
 
 Y (clz) X(mul)
 
 Y (mul) X(muls)
 
 Y (muls) X(mla)
 
 Y (mla) X(mlas)
 
 Y (mlas) X(mull)
 
 Y (mull) X(smulbb)
 
 Y (smulbb) X(smultb)
 
 Y (smultb) X(smulbt)
 
 Y (smulbt) X(smultt)
 
 Y (smultt) X(mov_reg_reg)
 
 Y (mov_reg_reg) X(mov_reg_pc)
 
 Y (mov_reg_pc) X(ret_trace)
 
 Y (ret_trace) X(ret)
 
 Y (ret) X(msr_imm)
 
 Y (msr_imm) X(msr)
 
 Y (msr) X(msr_imm_spsr)
 
 Y (msr_imm_spsr) X(msr_spsr)
 
 Y (msr_spsr) X(mrs)
 
 Y (mrs) X(mrs_spsr)
 
 Y (mrs_spsr) X(mcr_mrc)
 
 Y (mcr_mrc) X(cdp)
 
 Y (cdp) X(openfirmware)
 
 X (reboot)
 
 X (swi)
 
 Y (swi) X(bkpt)
 
 Y (bkpt) X(und)
 
 Y (und) X(swp)
 
 Y (swp) X(swpb)
 
 Y (swpb) extern void(*arm_load_store_instr[1024])(struct cpu *
 
struct arm_instr_call * X (store_w1_word_u1_p0_imm)
 
 X (store_w0_byte_u1_p0_imm)
 
 X (store_w0_word_u1_p0_imm)
 
 X (store_w0_word_u1_p1_imm)
 
 X (load_w0_word_u1_p0_imm)
 
 X (load_w0_word_u1_p1_imm)
 
 X (load_w1_word_u1_p0_imm)
 
 X (load_w0_byte_u1_p1_imm)
 
 X (load_w0_byte_u1_p1_reg)
 
 X (load_w1_byte_u1_p1_imm)
 
uint32_t arm_r_r3_t0_c0 (struct cpu *cpu, struct arm_instr_call *ic)
 
 X (cmps)
 
 X (teqs)
 
 X (tsts)
 
 X (sub)
 
 X (add)
 
 X (subs)
 
 X (eor_regshort)
 
 X (cmps_regshort)
 
 X (bdt_load)
 
 Y (bdt_load) X(bdt_store)
 
 Y (bdt_store) extern uint32_t *multi_opcode[256]
 
 X (multi_0x08b15018)
 
 X (multi_0x08ac000c__ge)
 
 X (multi_0x08a05018)
 
 X (netbsd_memset)
 
 X (netbsd_memcpy)
 
 X (netbsd_cacheclean)
 
 X (netbsd_cacheclean2)
 
 X (netbsd_scanc)
 
 X (netbsd_idle)
 
 X (strlen)
 
 X (xchg)
 
 X (netbsd_copyin)
 
 X (netbsd_copyout)
 
 X (cmps0_beq_samepage)
 
 X (cmps_beq_samepage)
 
 X (cmps_0_beq)
 
 X (cmps_pos_beq)
 
 X (cmps_neg_beq)
 
 X (cmps0_bne_samepage)
 
 X (cmps_bne_samepage)
 
 X (cmps_bcc_samepage)
 
 X (cmps_reg_bcc_samepage)
 
 X (cmps_bhi_samepage)
 
 X (cmps_reg_bhi_samepage)
 
 X (cmps_bgt_samepage)
 
 X (cmps_ble_samepage)
 
 X (teqs_beq_samepage)
 
 X (tsts_lo_beq_samepage)
 
 X (teqs_bne_samepage)
 
 X (tsts_lo_bne_samepage)
 
 X (end_of_page)
 
void COMBINE() netbsd_memset (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_memcpy (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_cacheclean (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_cacheclean2 (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_scanc (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() strlen (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() xchg (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_copyin (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() netbsd_copyout (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
void COMBINE() beq_etc (struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
 
 X (to_be_translated)
 

Variables

uint8_t condition_hi [16] = { 0,0,1,1, 0,0,0,0, 0,0,1,1, 0,0,0,0 }
 
uint8_t condition_ge [16] = { 1,0,1,0, 1,0,1,0, 0,1,0,1, 0,1,0,1 }
 
uint8_t condition_gt [16] = { 1,0,1,0, 0,0,0,0, 0,1,0,1, 0,0,0,0 }
 
void(* arm_cond_instr_b_samepage [16])(struct cpu *, struct arm_instr_call *)
 
void(* arm_load_store_instr_pc [1024])(struct cpu *, struct arm_instr_call *)
 
void(* arm_load_store_instr_3 [2048])(struct cpu *, struct arm_instr_call *)
 
void(* arm_load_store_instr_3_pc [2048])(struct cpu *, struct arm_instr_call *)
 
uint32_t(* arm_r [8192])(struct cpu *, struct arm_instr_call *)
 
void(* arm_dpi_instr [2 *2 *2 *16 *16])(struct cpu *, struct arm_instr_call *)
 
void(* arm_dpi_instr_regshort [2 *16 *16])(struct cpu *, struct arm_instr_call *)
 
void(** multi_opcode_f [256])(struct cpu *, struct arm_instr_call *)
 

Macro Definition Documentation

◆ cond_instr

#define cond_instr (   n)    ( arm_cond_instr_ ## n [condition_code] )

Definition at line 199 of file cpu_arm_instr.cc.

Referenced by X().

◆ DYNTRANS_TO_BE_TRANSLATED_HEAD

#define DYNTRANS_TO_BE_TRANSLATED_HEAD

◆ DYNTRANS_TO_BE_TRANSLATED_TAIL

#define DYNTRANS_TO_BE_TRANSLATED_TAIL

◆ Y

#define Y (   n)
Value:
void arm_instr_ ## n ## __eq(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (cpu->cd.arm.flags & ARM_F_Z) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __ne(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!(cpu->cd.arm.flags & ARM_F_Z)) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __cs(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (cpu->cd.arm.flags & ARM_F_C) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __cc(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!(cpu->cd.arm.flags & ARM_F_C)) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __mi(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (cpu->cd.arm.flags & ARM_F_N) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __pl(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!(cpu->cd.arm.flags & ARM_F_N)) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __vs(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (cpu->cd.arm.flags & ARM_F_V) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __vc(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!(cpu->cd.arm.flags & ARM_F_V)) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __hi(struct cpu *cpu, \
struct arm_instr_call *ic) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __ls(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!condition_hi[cpu->cd.arm.flags]) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __ge(struct cpu *cpu, \
struct arm_instr_call *ic) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __lt(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!condition_ge[cpu->cd.arm.flags]) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __gt(struct cpu *cpu, \
struct arm_instr_call *ic) \
arm_instr_ ## n (cpu, ic); } \
void arm_instr_ ## n ## __le(struct cpu *cpu, \
struct arm_instr_call *ic) \
{ if (!condition_gt[cpu->cd.arm.flags]) \
arm_instr_ ## n (cpu, ic); } \
void (*arm_cond_instr_ ## n [16])(struct cpu *, \
struct arm_instr_call *) = { \
arm_instr_ ## n ## __eq, arm_instr_ ## n ## __ne, \
arm_instr_ ## n ## __cs, arm_instr_ ## n ## __cc, \
arm_instr_ ## n ## __mi, arm_instr_ ## n ## __pl, \
arm_instr_ ## n ## __vs, arm_instr_ ## n ## __vc, \
arm_instr_ ## n ## __hi, arm_instr_ ## n ## __ls, \
arm_instr_ ## n ## __ge, arm_instr_ ## n ## __lt, \
arm_instr_ ## n ## __gt, arm_instr_ ## n ## __le, \
arm_instr_ ## n , arm_instr_nop };
struct arm_instr_call * ic
union cpu::@1 cd
uint8_t condition_hi[16]
struct arm_cpu arm
Definition: cpu.h:441
#define ARM_F_V
Definition: cpu_arm.h:85
uint8_t condition_ge[16]
#define ARM_F_Z
Definition: cpu_arm.h:83
void arm_instr_nop(struct cpu *, struct arm_instr_call *)
Definition: cpu.h:326
uint8_t condition_gt[16]
size_t flags
Definition: cpu_arm.h:166
#define ARM_F_N
Definition: cpu_arm.h:82
#define ARM_F_C
Definition: cpu_arm.h:84

Definition at line 132 of file cpu_arm_instr.cc.

Referenced by Y().

Function Documentation

◆ arm_r_r3_t0_c0()

uint32_t arm_r_r3_t0_c0 ( struct cpu cpu,
struct arm_instr_call *  ic 
)

Definition at line 20 of file tmp_arm_r0.cc.

Referenced by Y().

◆ beq_etc()

void COMBINE() beq_etc ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2357 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, cmps, and instr.

◆ netbsd_cacheclean()

void COMBINE() netbsd_cacheclean ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2177 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, and instr.

◆ netbsd_cacheclean2()

void COMBINE() netbsd_cacheclean2 ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2200 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, and instr.

◆ netbsd_copyin()

void COMBINE() netbsd_copyin ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

◆ netbsd_copyout()

void COMBINE() netbsd_copyout ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

◆ netbsd_memcpy()

void COMBINE() netbsd_memcpy ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2149 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, and instr.

◆ netbsd_memset()

void COMBINE() netbsd_memset ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2120 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, and instr.

◆ netbsd_scanc()

void COMBINE() netbsd_scanc ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

◆ strlen()

void COMBINE() strlen ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

◆ X() [1/71]

X ( invalid  )

Definition at line 208 of file cpu_arm_instr.cc.

References cpu::arm, ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, cpu::cd, fatal(), ic, and cpu::pc.

Referenced by Y().

◆ X() [2/71]

X ( nop  )

Definition at line 228 of file cpu_arm_instr.cc.

◆ X() [3/71]

X ( )

Definition at line 238 of file cpu_arm_instr.cc.

References ic, and cpu::pc.

◆ X() [4/71]

X ( b_samepage__eq  )

Definition at line 259 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_Z, cpu::cd, arm_cpu::flags, and ic.

◆ X() [5/71]

X ( b_samepage__ne  )

Definition at line 263 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_Z, cpu::cd, arm_cpu::flags, and ic.

◆ X() [6/71]

X ( b_samepage__cs  )

Definition at line 267 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_C, cpu::cd, arm_cpu::flags, and ic.

◆ X() [7/71]

X ( b_samepage__cc  )

Definition at line 271 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_C, cpu::cd, arm_cpu::flags, and ic.

◆ X() [8/71]

X ( b_samepage__mi  )

Definition at line 275 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, cpu::cd, arm_cpu::flags, and ic.

◆ X() [9/71]

X ( b_samepage__pl  )

Definition at line 279 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, cpu::cd, arm_cpu::flags, and ic.

◆ X() [10/71]

X ( b_samepage__vs  )

Definition at line 283 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_V, cpu::cd, arm_cpu::flags, and ic.

◆ X() [11/71]

X ( b_samepage__vc  )

Definition at line 287 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_V, cpu::cd, arm_cpu::flags, and ic.

◆ X() [12/71]

X ( b_samepage__hi  )

Definition at line 291 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [13/71]

X ( b_samepage__ls  )

Definition at line 296 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [14/71]

X ( b_samepage__ge  )

Definition at line 300 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [15/71]

X ( b_samepage__lt  )

Definition at line 305 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [16/71]

X ( b_samepage__gt  )

Definition at line 309 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [17/71]

X ( b_samepage__le  )

Definition at line 314 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::flags, and ic.

◆ X() [18/71]

X ( bx  )

◆ X() [19/71]

X ( reboot  )

Definition at line 898 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, cpu::n_translated_instrs, and cpu::running.

◆ X() [20/71]

X ( swi  )

Definition at line 909 of file cpu_arm_instr.cc.

References arm_exception(), ARM_EXCEPTION_SWI, ic, and cpu::pc.

◆ X() [21/71]

struct arm_instr_call* X ( store_w1_word_u1_p0_imm  )

◆ X() [22/71]

X ( store_w0_byte_u1_p0_imm  )

◆ X() [23/71]

X ( store_w0_word_u1_p0_imm  )

◆ X() [24/71]

X ( store_w0_word_u1_p1_imm  )

◆ X() [25/71]

X ( load_w0_word_u1_p0_imm  )

◆ X() [26/71]

X ( load_w0_word_u1_p1_imm  )

◆ X() [27/71]

X ( load_w1_word_u1_p0_imm  )

◆ X() [28/71]

X ( load_w0_byte_u1_p1_imm  )

◆ X() [29/71]

X ( load_w0_byte_u1_p1_reg  )

◆ X() [30/71]

X ( load_w1_byte_u1_p1_imm  )

◆ X() [31/71]

X ( cmps  )

◆ X() [32/71]

X ( teqs  )

◆ X() [33/71]

X ( tsts  )

◆ X() [34/71]

X ( sub  )

◆ X() [35/71]

X ( add  )

◆ X() [36/71]

X ( subs  )

◆ X() [37/71]

X ( eor_regshort  )

◆ X() [38/71]

X ( cmps_regshort  )

◆ X() [39/71]

X ( bdt_load  )

◆ X() [40/71]

X ( multi_0x08b15018  )

◆ X() [41/71]

X ( multi_0x08ac000c__ge  )

◆ X() [42/71]

X ( multi_0x08a05018  )

◆ X() [43/71]

X ( netbsd_memset  )

◆ X() [44/71]

X ( netbsd_memcpy  )

◆ X() [45/71]

Definition at line 1492 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, cpu::n_translated_instrs, and arm_cpu::r.

◆ X() [46/71]

Definition at line 1513 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, cpu::n_translated_instrs, and arm_cpu::r.

◆ X() [47/71]

X ( netbsd_scanc  )

◆ X() [48/71]

X ( netbsd_idle  )

◆ X() [49/71]

X ( strlen  )

◆ X() [50/71]

X ( xchg  )

Definition at line 1662 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, cpu::n_translated_instrs, and reg.

◆ X() [51/71]

X ( netbsd_copyin  )

◆ X() [52/71]

X ( netbsd_copyout  )

◆ X() [53/71]

X ( cmps0_beq_samepage  )

Definition at line 1745 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_C, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [54/71]

X ( cmps_beq_samepage  )

◆ X() [55/71]

X ( cmps_0_beq  )

◆ X() [56/71]

X ( cmps_pos_beq  )

◆ X() [57/71]

X ( cmps_neg_beq  )

◆ X() [58/71]

X ( cmps0_bne_samepage  )

Definition at line 1843 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_C, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [59/71]

X ( cmps_bne_samepage  )

◆ X() [60/71]

X ( cmps_bcc_samepage  )

◆ X() [61/71]

X ( cmps_reg_bcc_samepage  )

◆ X() [62/71]

X ( cmps_bhi_samepage  )

◆ X() [63/71]

X ( cmps_reg_bhi_samepage  )

◆ X() [64/71]

X ( cmps_bgt_samepage  )

◆ X() [65/71]

X ( cmps_ble_samepage  )

◆ X() [66/71]

X ( teqs_beq_samepage  )

Definition at line 2017 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [67/71]

X ( tsts_lo_beq_samepage  )

Definition at line 2038 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [68/71]

X ( teqs_bne_samepage  )

Definition at line 2056 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [69/71]

X ( tsts_lo_bne_samepage  )

Definition at line 2079 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, cpu::n_translated_instrs, and reg.

◆ X() [70/71]

X ( end_of_page  )

◆ X() [71/71]

X ( to_be_translated  )

◆ xchg()

void COMBINE() xchg ( struct cpu cpu,
struct arm_instr_call *  ic,
int  low_addr 
)

Definition at line 2270 of file cpu_arm_instr.cc.

References ARM_IC_ENTRIES_PER_PAGE, ARM_INSTR_ALIGNMENT_SHIFT, and instr.

◆ Y() [1/37]

Y ( )

Definition at line 245 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, and ic.

◆ Y() [2/37]

Y ( bx  )

◆ Y() [3/37]

Y ( bx_trace  )

Definition at line 391 of file cpu_arm_instr.cc.

References cpu::arm, ARM_LR, cpu::cd, ic, cpu::pc, and arm_cpu::r.

◆ Y() [4/37]

Y ( bl  )

◆ Y() [5/37]

Y ( blx  )

Definition at line 444 of file cpu_arm_instr.cc.

References cpu::arm, ARM_LR, cpu::cd, cpu_functioncall_trace(), ic, cpu::pc, and arm_cpu::r.

◆ Y() [6/37]

Y ( bl_trace  )

Definition at line 465 of file cpu_arm_instr.cc.

References cpu::arm, ARM_LR, cpu::cd, ic, cpu::pc, and arm_cpu::r.

◆ Y() [7/37]

Y ( bl_samepage  )

◆ Y() [8/37]

Y ( bl_samepage_trace  )

Definition at line 505 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [9/37]

Y ( clz  )

Definition at line 535 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [10/37]

Y ( mul  )

Definition at line 549 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, ic, and reg.

◆ Y() [11/37]

Y ( muls  )

Definition at line 561 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, ic, and arm_cpu::r.

◆ Y() [12/37]

Y ( mla  )

Definition at line 579 of file cpu_arm_instr.cc.

References cpu::arm, ARM_F_N, ARM_F_Z, cpu::cd, arm_cpu::flags, ic, and arm_cpu::r.

◆ Y() [13/37]

Y ( mlas  )

Definition at line 595 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, ic, and arm_cpu::r.

◆ Y() [14/37]

Y ( mull  )

Definition at line 626 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [15/37]

Y ( smulbb  )

Definition at line 641 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [16/37]

Y ( smultb  )

Definition at line 647 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [17/37]

Y ( smulbt  )

Definition at line 653 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [18/37]

Y ( smultt  )

Definition at line 659 of file cpu_arm_instr.cc.

References ic, and reg.

◆ Y() [19/37]

Y ( mov_reg_reg  )

Definition at line 672 of file cpu_arm_instr.cc.

References ic, cpu::pc, and reg.

◆ Y() [20/37]

Y ( mov_reg_pc  )

◆ Y() [21/37]

Y ( ret_trace  )

Definition at line 719 of file cpu_arm_instr.cc.

References cpu::arm, ARM_LR, cpu::cd, cpu::pc, and arm_cpu::r.

◆ Y() [22/37]

Y ( ret  )

◆ Y() [23/37]

Y ( msr_imm  )

Definition at line 765 of file cpu_arm_instr.cc.

References ic, instr, and reg.

◆ Y() [24/37]

Y ( msr  )

◆ Y() [25/37]

Y ( msr_imm_spsr  )

Definition at line 811 of file cpu_arm_instr.cc.

References ic, instr, and reg.

◆ Y() [26/37]

Y ( msr_spsr  )

Definition at line 817 of file cpu_arm_instr.cc.

References cpu::arm, cpu::cd, arm_cpu::cpsr, arm_cpu::flags, ic, and reg.

◆ Y() [27/37]

Y ( mrs  )

◆ Y() [28/37]

Y ( mrs_spsr  )

◆ Y() [29/37]

Y ( mcr_mrc  )

◆ Y() [30/37]

Y ( cdp  )

◆ Y() [31/37]

Y ( swi  )

Definition at line 916 of file cpu_arm_instr.cc.

References arm_exception(), ARM_EXCEPTION_PREF_ABT, ic, and cpu::pc.

◆ Y() [32/37]

Y ( bkpt  )

Definition at line 929 of file cpu_arm_instr.cc.

References arm_exception(), ARM_EXCEPTION_UND, ic, and cpu::pc.

◆ Y() [33/37]

Y ( und  )

◆ Y() [34/37]

Y ( swp  )

◆ Y() [35/37]

Y ( swpb  )

◆ Y() [36/37]

Y ( bdt_load  )

◆ Y() [37/37]

Y ( bdt_store  )

Variable Documentation

◆ arm_cond_instr_b_samepage

void(* arm_cond_instr_b_samepage[16])(struct cpu *, struct arm_instr_call *)
Initial value:
= {
arm_instr_b_samepage__eq, arm_instr_b_samepage__ne,
arm_instr_b_samepage__cs, arm_instr_b_samepage__cc,
arm_instr_b_samepage__mi, arm_instr_b_samepage__pl,
arm_instr_b_samepage__vs, arm_instr_b_samepage__vc,
arm_instr_b_samepage__hi, arm_instr_b_samepage__ls,
arm_instr_b_samepage__ge, arm_instr_b_samepage__lt,
arm_instr_b_samepage__gt, arm_instr_b_samepage__le,
arm_instr_b_samepage, arm_instr_nop }
void arm_instr_nop(struct cpu *, struct arm_instr_call *)

Definition at line 318 of file cpu_arm_instr.cc.

◆ arm_dpi_instr

void(* arm_dpi_instr[2 * 2 * 2 * 16 * 16])(struct cpu *, struct arm_instr_call *)

Definition at line 5075 of file tmp_arm_dpi.cc.

Referenced by Y().

◆ arm_dpi_instr_regshort

void(* arm_dpi_instr_regshort[2 * 16 * 16])(struct cpu *, struct arm_instr_call *)

Definition at line 7128 of file tmp_arm_dpi.cc.

Referenced by Y().

◆ arm_load_store_instr_3

void(* arm_load_store_instr_3[2048])(struct cpu *, struct arm_instr_call *)

Definition at line 5915 of file tmp_arm_loadstore.cc.

Referenced by X(), and Y().

◆ arm_load_store_instr_3_pc

void(* arm_load_store_instr_3_pc[2048])(struct cpu *, struct arm_instr_call *)

Definition at line 7968 of file tmp_arm_loadstore.cc.

Referenced by X(), and Y().

◆ arm_load_store_instr_pc

void(* arm_load_store_instr_pc[1024])(struct cpu *, struct arm_instr_call *)

Definition at line 2006 of file tmp_arm_loadstore.cc.

Referenced by Y().

◆ arm_r

uint32_t(* arm_r[8192])(struct cpu *, struct arm_instr_call *)

Definition at line 8204 of file tmp_arm_r.cc.

Referenced by X(), and Y().

◆ condition_ge

uint8_t condition_ge[16] = { 1,0,1,0, 1,0,1,0, 0,1,0,1, 0,1,0,1 }

Definition at line 129 of file cpu_arm_instr.cc.

Referenced by A__NAME__ge(), and A__NAME__lt().

◆ condition_gt

uint8_t condition_gt[16] = { 1,0,1,0, 0,0,0,0, 0,1,0,1, 0,0,0,0 }

Definition at line 130 of file cpu_arm_instr.cc.

Referenced by A__NAME__gt(), and A__NAME__le().

◆ condition_hi

uint8_t condition_hi[16] = { 0,0,1,1, 0,0,0,0, 0,0,1,1, 0,0,0,0 }

Definition at line 128 of file cpu_arm_instr.cc.

Referenced by A__NAME__hi(), and A__NAME__ls().

◆ multi_opcode_f

void(** multi_opcode_f[256])(struct cpu *, struct arm_instr_call *)

Definition at line 9510 of file tmp_arm_multi.cc.

Referenced by Y().


Generated on Sun Sep 30 2018 16:05:18 for GXemul by doxygen 1.8.13