Statistics
| Branch: | Revision:

root / target-ppc / op_template.h @ bd7d9a6d

History | View | Annotate | Download (2.5 kB)

1 28b6751f bellard
/*
2 3fc6c082 bellard
 *  PowerPC emulation micro-operations for qemu.
3 5fafdf24 ths
 *
4 76a66253 j_mayer
 *  Copyright (c) 2003-2007 Jocelyn Mayer
5 28b6751f bellard
 *
6 28b6751f bellard
 * This library is free software; you can redistribute it and/or
7 28b6751f bellard
 * modify it under the terms of the GNU Lesser General Public
8 28b6751f bellard
 * License as published by the Free Software Foundation; either
9 28b6751f bellard
 * version 2 of the License, or (at your option) any later version.
10 28b6751f bellard
 *
11 28b6751f bellard
 * This library is distributed in the hope that it will be useful,
12 28b6751f bellard
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 28b6751f bellard
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 28b6751f bellard
 * Lesser General Public License for more details.
15 28b6751f bellard
 *
16 28b6751f bellard
 * You should have received a copy of the GNU Lesser General Public
17 28b6751f bellard
 * License along with this library; if not, write to the Free Software
18 28b6751f bellard
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 28b6751f bellard
 */
20 28b6751f bellard
21 a9d9eb8f j_mayer
/* Altivec registers moves */
22 a9d9eb8f j_mayer
void OPPROTO glue(op_load_avr_A0_avr, REG) (void)
23 a9d9eb8f j_mayer
{
24 a9d9eb8f j_mayer
    AVR0 = env->avr[REG];
25 a9d9eb8f j_mayer
    RETURN();
26 a9d9eb8f j_mayer
}
27 a9d9eb8f j_mayer
28 a9d9eb8f j_mayer
void OPPROTO glue(op_load_avr_A1_avr, REG) (void)
29 a9d9eb8f j_mayer
{
30 a9d9eb8f j_mayer
    AVR1 = env->avr[REG];
31 a9d9eb8f j_mayer
    RETURN();
32 a9d9eb8f j_mayer
}
33 a9d9eb8f j_mayer
34 a9d9eb8f j_mayer
void OPPROTO glue(op_load_avr_A2_avr, REG) (void)
35 a9d9eb8f j_mayer
{
36 a9d9eb8f j_mayer
    AVR2 = env->avr[REG];
37 a9d9eb8f j_mayer
    RETURN();
38 a9d9eb8f j_mayer
}
39 a9d9eb8f j_mayer
40 a9d9eb8f j_mayer
void OPPROTO glue(op_store_A0_avr_avr, REG) (void)
41 a9d9eb8f j_mayer
{
42 a9d9eb8f j_mayer
    env->avr[REG] = AVR0;
43 a9d9eb8f j_mayer
    RETURN();
44 a9d9eb8f j_mayer
}
45 a9d9eb8f j_mayer
46 a9d9eb8f j_mayer
void OPPROTO glue(op_store_A1_avr_avr, REG) (void)
47 a9d9eb8f j_mayer
{
48 a9d9eb8f j_mayer
    env->avr[REG] = AVR1;
49 a9d9eb8f j_mayer
    RETURN();
50 a9d9eb8f j_mayer
}
51 a9d9eb8f j_mayer
52 a9d9eb8f j_mayer
#if 0 // unused
53 a9d9eb8f j_mayer
void OPPROTO glue(op_store_A2_avr_avr, REG) (void)
54 a9d9eb8f j_mayer
{
55 a9d9eb8f j_mayer
    env->avr[REG] = AVR2;
56 a9d9eb8f j_mayer
    RETURN();
57 a9d9eb8f j_mayer
}
58 a9d9eb8f j_mayer
#endif
59 a9d9eb8f j_mayer
60 28b6751f bellard
#if REG <= 7
61 9a64fbe4 bellard
/* Condition register moves */
62 76a66253 j_mayer
void OPPROTO glue(op_load_crf_T0_crf, REG) (void)
63 28b6751f bellard
{
64 36081602 j_mayer
    T0 = env->crf[REG];
65 9a64fbe4 bellard
    RETURN();
66 28b6751f bellard
}
67 28b6751f bellard
68 76a66253 j_mayer
void OPPROTO glue(op_load_crf_T1_crf, REG) (void)
69 28b6751f bellard
{
70 36081602 j_mayer
    T1 = env->crf[REG];
71 9a64fbe4 bellard
    RETURN();
72 28b6751f bellard
}
73 28b6751f bellard
74 76a66253 j_mayer
void OPPROTO glue(op_store_T0_crf_crf, REG) (void)
75 28b6751f bellard
{
76 36081602 j_mayer
    env->crf[REG] = T0;
77 9a64fbe4 bellard
    RETURN();
78 28b6751f bellard
}
79 28b6751f bellard
80 fc0d441e j_mayer
#if 0 // Unused
81 76a66253 j_mayer
void OPPROTO glue(op_store_T1_crf_crf, REG) (void)
82 28b6751f bellard
{
83 36081602 j_mayer
    env->crf[REG] = T1;
84 9a64fbe4 bellard
    RETURN();
85 28b6751f bellard
}
86 fc0d441e j_mayer
#endif
87 28b6751f bellard
88 28b6751f bellard
#endif /* REG <= 7 */
89 28b6751f bellard
90 fb0eaffc bellard
/* floating point registers moves */
91 76a66253 j_mayer
void OPPROTO glue(op_load_fpr_FT0_fpr, REG) (void)
92 28b6751f bellard
{
93 28b6751f bellard
    FT0 = env->fpr[REG];
94 fb0eaffc bellard
    RETURN();
95 28b6751f bellard
}
96 28b6751f bellard
97 76a66253 j_mayer
void OPPROTO glue(op_store_FT0_fpr_fpr, REG) (void)
98 28b6751f bellard
{
99 28b6751f bellard
    env->fpr[REG] = FT0;
100 fb0eaffc bellard
    RETURN();
101 fb0eaffc bellard
}
102 fb0eaffc bellard
103 76a66253 j_mayer
void OPPROTO glue(op_load_fpr_FT1_fpr, REG) (void)
104 fb0eaffc bellard
{
105 fb0eaffc bellard
    FT1 = env->fpr[REG];
106 fb0eaffc bellard
    RETURN();
107 fb0eaffc bellard
}
108 fb0eaffc bellard
109 76a66253 j_mayer
void OPPROTO glue(op_store_FT1_fpr_fpr, REG) (void)
110 fb0eaffc bellard
{
111 fb0eaffc bellard
    env->fpr[REG] = FT1;
112 fb0eaffc bellard
    RETURN();
113 fb0eaffc bellard
}
114 fb0eaffc bellard
115 76a66253 j_mayer
void OPPROTO glue(op_load_fpr_FT2_fpr, REG) (void)
116 fb0eaffc bellard
{
117 fb0eaffc bellard
    FT2 = env->fpr[REG];
118 fb0eaffc bellard
    RETURN();
119 fb0eaffc bellard
}
120 fb0eaffc bellard
121 76a66253 j_mayer
#if 0 // unused
122 76a66253 j_mayer
void OPPROTO glue(op_store_FT2_fpr_fpr, REG) (void)
123 fb0eaffc bellard
{
124 fb0eaffc bellard
    env->fpr[REG] = FT2;
125 fb0eaffc bellard
    RETURN();
126 28b6751f bellard
}
127 9a64fbe4 bellard
#endif
128 9a64fbe4 bellard
129 28b6751f bellard
#undef REG