1 |
#ifndef ARM_TMPHEAD_1 |
2 |
#define ARM_TMPHEAD_1 |
3 |
/* $Id: arm_tmphead_1.h,v 1.3 2006/02/19 08:04:13 debug Exp $ */ |
4 |
extern uint8_t condition_hi[16]; |
5 |
extern uint8_t condition_ge[16]; |
6 |
extern uint8_t condition_gt[16]; |
7 |
#define Y(n) void arm_instr_ ## n ## __eq(struct cpu *cpu, \ |
8 |
struct arm_instr_call *ic) \ |
9 |
{ if (cpu->cd.arm.flags & ARM_F_Z) \ |
10 |
arm_instr_ ## n (cpu, ic); } \ |
11 |
void arm_instr_ ## n ## __ne(struct cpu *cpu, \ |
12 |
struct arm_instr_call *ic) \ |
13 |
{ if (!(cpu->cd.arm.flags & ARM_F_Z)) \ |
14 |
arm_instr_ ## n (cpu, ic); } \ |
15 |
void arm_instr_ ## n ## __cs(struct cpu *cpu, \ |
16 |
struct arm_instr_call *ic) \ |
17 |
{ if (cpu->cd.arm.flags & ARM_F_C) \ |
18 |
arm_instr_ ## n (cpu, ic); } \ |
19 |
void arm_instr_ ## n ## __cc(struct cpu *cpu, \ |
20 |
struct arm_instr_call *ic) \ |
21 |
{ if (!(cpu->cd.arm.flags & ARM_F_C)) \ |
22 |
arm_instr_ ## n (cpu, ic); } \ |
23 |
void arm_instr_ ## n ## __mi(struct cpu *cpu, \ |
24 |
struct arm_instr_call *ic) \ |
25 |
{ if (cpu->cd.arm.flags & ARM_F_N) \ |
26 |
arm_instr_ ## n (cpu, ic); } \ |
27 |
void arm_instr_ ## n ## __pl(struct cpu *cpu, \ |
28 |
struct arm_instr_call *ic) \ |
29 |
{ if (!(cpu->cd.arm.flags & ARM_F_N)) \ |
30 |
arm_instr_ ## n (cpu, ic); } \ |
31 |
void arm_instr_ ## n ## __vs(struct cpu *cpu, \ |
32 |
struct arm_instr_call *ic) \ |
33 |
{ if (cpu->cd.arm.flags & ARM_F_V) \ |
34 |
arm_instr_ ## n (cpu, ic); } \ |
35 |
void arm_instr_ ## n ## __vc(struct cpu *cpu, \ |
36 |
struct arm_instr_call *ic) \ |
37 |
{ if (!(cpu->cd.arm.flags & ARM_F_V)) \ |
38 |
arm_instr_ ## n (cpu, ic); } \ |
39 |
void arm_instr_ ## n ## __hi(struct cpu *cpu, \ |
40 |
struct arm_instr_call *ic) \ |
41 |
{ if (condition_hi[cpu->cd.arm.flags]) \ |
42 |
arm_instr_ ## n (cpu, ic); } \ |
43 |
void arm_instr_ ## n ## __ls(struct cpu *cpu, \ |
44 |
struct arm_instr_call *ic) \ |
45 |
{ if (!condition_hi[cpu->cd.arm.flags]) \ |
46 |
arm_instr_ ## n (cpu, ic); } \ |
47 |
void arm_instr_ ## n ## __ge(struct cpu *cpu, \ |
48 |
struct arm_instr_call *ic) \ |
49 |
{ if (condition_ge[cpu->cd.arm.flags]) \ |
50 |
arm_instr_ ## n (cpu, ic); } \ |
51 |
void arm_instr_ ## n ## __lt(struct cpu *cpu, \ |
52 |
struct arm_instr_call *ic) \ |
53 |
{ if (!condition_ge[cpu->cd.arm.flags]) \ |
54 |
arm_instr_ ## n (cpu, ic); } \ |
55 |
void arm_instr_ ## n ## __gt(struct cpu *cpu, \ |
56 |
struct arm_instr_call *ic) \ |
57 |
{ if (condition_gt[cpu->cd.arm.flags]) \ |
58 |
arm_instr_ ## n (cpu, ic); } \ |
59 |
void arm_instr_ ## n ## __le(struct cpu *cpu, \ |
60 |
struct arm_instr_call *ic) \ |
61 |
{ if (!condition_gt[cpu->cd.arm.flags]) \ |
62 |
arm_instr_ ## n (cpu, ic); } |
63 |
#endif /* ARM_TMPHEAD_1 */ |