Revision 3761035f target-alpha/op_template.h
b/target-alpha/op_template.h | ||
---|---|---|
20 | 20 |
|
21 | 21 |
/* Optimized constant loads */ |
22 | 22 |
#if REG < 3 |
23 |
void OPPROTO glue(op_reset_T, REG) (void) |
|
24 |
{ |
|
25 |
glue(T, REG) = 0; |
|
26 |
RETURN(); |
|
27 |
} |
|
28 | 23 |
|
29 | 24 |
#if !defined(HOST_SPARC) && !defined(HOST_SPARC64) |
30 | 25 |
void OPPROTO glue(op_reset_FT, REG) (void) |
... | ... | |
40 | 35 |
} |
41 | 36 |
#endif |
42 | 37 |
|
43 |
/* XXX: This can be great on most RISC machines */ |
|
44 |
#if !defined(__i386__) && !defined(__x86_64__) |
|
45 |
void OPPROTO glue(op_set_s16_T, REG) (void) |
|
46 |
{ |
|
47 |
glue(T, REG) = (int16_t)PARAM(1); |
|
48 |
RETURN(); |
|
49 |
} |
|
50 |
|
|
51 |
void OPPROTO glue(op_set_u16_T, REG) (void) |
|
52 |
{ |
|
53 |
glue(T, REG) = (uint16_t)PARAM(1); |
|
54 |
RETURN(); |
|
55 |
} |
|
56 |
#endif |
|
57 |
|
|
58 |
void OPPROTO glue(op_set_s32_T, REG) (void) |
|
59 |
{ |
|
60 |
glue(T, REG) = (int32_t)PARAM(1); |
|
61 |
RETURN(); |
|
62 |
} |
|
63 |
|
|
64 |
void OPPROTO glue(op_set_u32_T, REG) (void) |
|
65 |
{ |
|
66 |
glue(T, REG) = (uint32_t)PARAM(1); |
|
67 |
RETURN(); |
|
68 |
} |
|
69 |
|
|
70 |
#if 0 // Qemu does not know how to do this... |
|
71 |
void OPPROTO glue(op_set_64_T, REG) (void) |
|
72 |
{ |
|
73 |
glue(T, REG) = (int64_t)PARAM(1); |
|
74 |
RETURN(); |
|
75 |
} |
|
76 |
#else |
|
77 |
void OPPROTO glue(op_set_64_T, REG) (void) |
|
78 |
{ |
|
79 |
glue(T, REG) = ((int64_t)PARAM(1) << 32) | (int64_t)PARAM(2); |
|
80 |
RETURN(); |
|
81 |
} |
|
82 |
#endif |
|
83 |
|
|
84 | 38 |
#endif /* REG < 3 */ |
85 | 39 |
|
86 | 40 |
/* Fixed-point register moves */ |
87 | 41 |
#if REG < 31 |
88 |
void OPPROTO glue(op_load_T0_ir, REG) (void) |
|
89 |
{ |
|
90 |
T0 = env->ir[REG]; |
|
91 |
RETURN(); |
|
92 |
} |
|
93 |
|
|
94 |
void OPPROTO glue(op_load_T1_ir, REG) (void) |
|
95 |
{ |
|
96 |
T1 = env->ir[REG]; |
|
97 |
RETURN(); |
|
98 |
} |
|
99 |
|
|
100 |
void OPPROTO glue(op_load_T2_ir, REG) (void) |
|
101 |
{ |
|
102 |
T2 = env->ir[REG]; |
|
103 |
RETURN(); |
|
104 |
} |
|
105 |
|
|
106 |
void OPPROTO glue(op_store_T0_ir, REG) (void) |
|
107 |
{ |
|
108 |
env->ir[REG] = T0; |
|
109 |
RETURN(); |
|
110 |
} |
|
111 |
|
|
112 |
void OPPROTO glue(op_store_T1_ir, REG) (void) |
|
113 |
{ |
|
114 |
env->ir[REG] = T1; |
|
115 |
RETURN(); |
|
116 |
} |
|
117 |
|
|
118 |
void OPPROTO glue(op_store_T2_ir, REG) (void) |
|
119 |
{ |
|
120 |
env->ir[REG] = T2; |
|
121 |
RETURN(); |
|
122 |
} |
|
123 |
|
|
124 | 42 |
void OPPROTO glue(op_cmov_ir, REG) (void) |
125 | 43 |
{ |
126 | 44 |
if (T0) |
Also available in: Unified diff