root / opreg_template.h @ 7bfdb6d1
History | View | Annotate | Download (1.9 kB)
1 |
/* templates for various register related operations */
|
---|---|
2 |
|
3 |
void OPPROTO glue(op_movl_A0,REGNAME)(void) |
4 |
{ |
5 |
A0 = REG; |
6 |
} |
7 |
|
8 |
void OPPROTO glue(op_addl_A0,REGNAME)(void) |
9 |
{ |
10 |
A0 += REG; |
11 |
} |
12 |
|
13 |
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s1)(void) |
14 |
{ |
15 |
A0 += REG << 1;
|
16 |
} |
17 |
|
18 |
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s2)(void) |
19 |
{ |
20 |
A0 += REG << 2;
|
21 |
} |
22 |
|
23 |
void OPPROTO glue(glue(op_addl_A0,REGNAME),_s3)(void) |
24 |
{ |
25 |
A0 += REG << 3;
|
26 |
} |
27 |
|
28 |
void OPPROTO glue(op_movl_T0,REGNAME)(void) |
29 |
{ |
30 |
T0 = REG; |
31 |
} |
32 |
|
33 |
void OPPROTO glue(op_movl_T1,REGNAME)(void) |
34 |
{ |
35 |
T1 = REG; |
36 |
} |
37 |
|
38 |
void OPPROTO glue(op_movh_T0,REGNAME)(void) |
39 |
{ |
40 |
T0 = REG >> 8;
|
41 |
} |
42 |
|
43 |
void OPPROTO glue(op_movh_T1,REGNAME)(void) |
44 |
{ |
45 |
T1 = REG >> 8;
|
46 |
} |
47 |
|
48 |
void OPPROTO glue(glue(op_movl,REGNAME),_T0)(void) |
49 |
{ |
50 |
REG = T0; |
51 |
} |
52 |
|
53 |
void OPPROTO glue(glue(op_movl,REGNAME),_T1)(void) |
54 |
{ |
55 |
REG = T1; |
56 |
} |
57 |
|
58 |
void OPPROTO glue(glue(op_movl,REGNAME),_A0)(void) |
59 |
{ |
60 |
REG = A0; |
61 |
} |
62 |
|
63 |
/* NOTE: T0 high order bits are ignored */
|
64 |
void OPPROTO glue(glue(op_movw,REGNAME),_T0)(void) |
65 |
{ |
66 |
REG = (REG & 0xffff0000) | (T0 & 0xffff); |
67 |
} |
68 |
|
69 |
/* NOTE: T0 high order bits are ignored */
|
70 |
void OPPROTO glue(glue(op_movw,REGNAME),_T1)(void) |
71 |
{ |
72 |
REG = (REG & 0xffff0000) | (T1 & 0xffff); |
73 |
} |
74 |
|
75 |
/* NOTE: A0 high order bits are ignored */
|
76 |
void OPPROTO glue(glue(op_movw,REGNAME),_A0)(void) |
77 |
{ |
78 |
REG = (REG & 0xffff0000) | (A0 & 0xffff); |
79 |
} |
80 |
|
81 |
/* NOTE: T0 high order bits are ignored */
|
82 |
void OPPROTO glue(glue(op_movb,REGNAME),_T0)(void) |
83 |
{ |
84 |
REG = (REG & 0xffffff00) | (T0 & 0xff); |
85 |
} |
86 |
|
87 |
/* NOTE: T0 high order bits are ignored */
|
88 |
void OPPROTO glue(glue(op_movh,REGNAME),_T0)(void) |
89 |
{ |
90 |
REG = (REG & 0xffff00ff) | ((T0 & 0xff) << 8); |
91 |
} |
92 |
|
93 |
/* NOTE: T1 high order bits are ignored */
|
94 |
void OPPROTO glue(glue(op_movb,REGNAME),_T1)(void) |
95 |
{ |
96 |
REG = (REG & 0xffffff00) | (T1 & 0xff); |
97 |
} |
98 |
|
99 |
/* NOTE: T1 high order bits are ignored */
|
100 |
void OPPROTO glue(glue(op_movh,REGNAME),_T1)(void) |
101 |
{ |
102 |
REG = (REG & 0xffff00ff) | ((T1 & 0xff) << 8); |
103 |
} |