xref: /openbmc/qemu/include/accel/tcg/cpu-ldst.h (revision 7cef6d686309e2792186504ae17cf4f3eb57ef68)
1*42fa9665SPhilippe Mathieu-Daudé /*
2*42fa9665SPhilippe Mathieu-Daudé  *  Software MMU support (per-target)
3*42fa9665SPhilippe Mathieu-Daudé  *
4*42fa9665SPhilippe Mathieu-Daudé  * This library is free software; you can redistribute it and/or
5*42fa9665SPhilippe Mathieu-Daudé  * modify it under the terms of the GNU Lesser General Public
6*42fa9665SPhilippe Mathieu-Daudé  * License as published by the Free Software Foundation; either
7*42fa9665SPhilippe Mathieu-Daudé  * version 2.1 of the License, or (at your option) any later version.
8*42fa9665SPhilippe Mathieu-Daudé  *
9*42fa9665SPhilippe Mathieu-Daudé  * This library is distributed in the hope that it will be useful,
10*42fa9665SPhilippe Mathieu-Daudé  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*42fa9665SPhilippe Mathieu-Daudé  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*42fa9665SPhilippe Mathieu-Daudé  * Lesser General Public License for more details.
13*42fa9665SPhilippe Mathieu-Daudé  *
14*42fa9665SPhilippe Mathieu-Daudé  * You should have received a copy of the GNU Lesser General Public
15*42fa9665SPhilippe Mathieu-Daudé  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
16*42fa9665SPhilippe Mathieu-Daudé  *
17*42fa9665SPhilippe Mathieu-Daudé  */
18*42fa9665SPhilippe Mathieu-Daudé 
19*42fa9665SPhilippe Mathieu-Daudé /*
20*42fa9665SPhilippe Mathieu-Daudé  * Generate inline load/store functions for all MMU modes (typically
21*42fa9665SPhilippe Mathieu-Daudé  * at least _user and _kernel) as well as _data versions, for all data
22*42fa9665SPhilippe Mathieu-Daudé  * sizes.
23*42fa9665SPhilippe Mathieu-Daudé  *
24*42fa9665SPhilippe Mathieu-Daudé  * Used by target op helpers.
25*42fa9665SPhilippe Mathieu-Daudé  *
26*42fa9665SPhilippe Mathieu-Daudé  * The syntax for the accessors is:
27*42fa9665SPhilippe Mathieu-Daudé  *
28*42fa9665SPhilippe Mathieu-Daudé  * load:  cpu_ld{sign}{size}{end}_{mmusuffix}(env, ptr)
29*42fa9665SPhilippe Mathieu-Daudé  *        cpu_ld{sign}{size}{end}_{mmusuffix}_ra(env, ptr, retaddr)
30*42fa9665SPhilippe Mathieu-Daudé  *        cpu_ld{sign}{size}{end}_mmuidx_ra(env, ptr, mmu_idx, retaddr)
31*42fa9665SPhilippe Mathieu-Daudé  *        cpu_ld{sign}{size}{end}_mmu(env, ptr, oi, retaddr)
32*42fa9665SPhilippe Mathieu-Daudé  *
33*42fa9665SPhilippe Mathieu-Daudé  * store: cpu_st{size}{end}_{mmusuffix}(env, ptr, val)
34*42fa9665SPhilippe Mathieu-Daudé  *        cpu_st{size}{end}_{mmusuffix}_ra(env, ptr, val, retaddr)
35*42fa9665SPhilippe Mathieu-Daudé  *        cpu_st{size}{end}_mmuidx_ra(env, ptr, val, mmu_idx, retaddr)
36*42fa9665SPhilippe Mathieu-Daudé  *        cpu_st{size}{end}_mmu(env, ptr, val, oi, retaddr)
37*42fa9665SPhilippe Mathieu-Daudé  *
38*42fa9665SPhilippe Mathieu-Daudé  * sign is:
39*42fa9665SPhilippe Mathieu-Daudé  * (empty): for 32 and 64 bit sizes
40*42fa9665SPhilippe Mathieu-Daudé  *   u    : unsigned
41*42fa9665SPhilippe Mathieu-Daudé  *   s    : signed
42*42fa9665SPhilippe Mathieu-Daudé  *
43*42fa9665SPhilippe Mathieu-Daudé  * size is:
44*42fa9665SPhilippe Mathieu-Daudé  *   b: 8 bits
45*42fa9665SPhilippe Mathieu-Daudé  *   w: 16 bits
46*42fa9665SPhilippe Mathieu-Daudé  *   l: 32 bits
47*42fa9665SPhilippe Mathieu-Daudé  *   q: 64 bits
48*42fa9665SPhilippe Mathieu-Daudé  *
49*42fa9665SPhilippe Mathieu-Daudé  * end is:
50*42fa9665SPhilippe Mathieu-Daudé  * (empty): for target native endian, or for 8 bit access
51*42fa9665SPhilippe Mathieu-Daudé  *     _be: for forced big endian
52*42fa9665SPhilippe Mathieu-Daudé  *     _le: for forced little endian
53*42fa9665SPhilippe Mathieu-Daudé  *
54*42fa9665SPhilippe Mathieu-Daudé  * mmusuffix is one of the generic suffixes "data" or "code", or "mmuidx".
55*42fa9665SPhilippe Mathieu-Daudé  * The "mmuidx" suffix carries an extra mmu_idx argument that specifies
56*42fa9665SPhilippe Mathieu-Daudé  * the index to use; the "data" and "code" suffixes take the index from
57*42fa9665SPhilippe Mathieu-Daudé  * cpu_mmu_index().
58*42fa9665SPhilippe Mathieu-Daudé  *
59*42fa9665SPhilippe Mathieu-Daudé  * The "mmu" suffix carries the full MemOpIdx, with both mmu_idx and the
60*42fa9665SPhilippe Mathieu-Daudé  * MemOp including alignment requirements.  The alignment will be enforced.
61*42fa9665SPhilippe Mathieu-Daudé  */
62*42fa9665SPhilippe Mathieu-Daudé #ifndef ACCEL_TCG_CPU_LDST_H
63*42fa9665SPhilippe Mathieu-Daudé #define ACCEL_TCG_CPU_LDST_H
64*42fa9665SPhilippe Mathieu-Daudé 
65*42fa9665SPhilippe Mathieu-Daudé #ifndef CONFIG_TCG
66*42fa9665SPhilippe Mathieu-Daudé #error Can only include this header with TCG
67*42fa9665SPhilippe Mathieu-Daudé #endif
68*42fa9665SPhilippe Mathieu-Daudé 
69*42fa9665SPhilippe Mathieu-Daudé #include "exec/cpu-common.h"
70*42fa9665SPhilippe Mathieu-Daudé #include "accel/tcg/cpu-ldst-common.h"
71*42fa9665SPhilippe Mathieu-Daudé #include "accel/tcg/cpu-mmu-index.h"
72*42fa9665SPhilippe Mathieu-Daudé #include "exec/abi_ptr.h"
73*42fa9665SPhilippe Mathieu-Daudé 
74*42fa9665SPhilippe Mathieu-Daudé #if defined(CONFIG_USER_ONLY)
75*42fa9665SPhilippe Mathieu-Daudé #include "user/guest-host.h"
76*42fa9665SPhilippe Mathieu-Daudé #endif /* CONFIG_USER_ONLY */
77*42fa9665SPhilippe Mathieu-Daudé 
78*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldub_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)79*42fa9665SPhilippe Mathieu-Daudé cpu_ldub_mmuidx_ra(CPUArchState *env, abi_ptr addr, int mmu_idx, uintptr_t ra)
80*42fa9665SPhilippe Mathieu-Daudé {
81*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_UB, mmu_idx);
82*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldb_mmu(env, addr, oi, ra);
83*42fa9665SPhilippe Mathieu-Daudé }
84*42fa9665SPhilippe Mathieu-Daudé 
85*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsb_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)86*42fa9665SPhilippe Mathieu-Daudé cpu_ldsb_mmuidx_ra(CPUArchState *env, abi_ptr addr, int mmu_idx, uintptr_t ra)
87*42fa9665SPhilippe Mathieu-Daudé {
88*42fa9665SPhilippe Mathieu-Daudé     return (int8_t)cpu_ldub_mmuidx_ra(env, addr, mmu_idx, ra);
89*42fa9665SPhilippe Mathieu-Daudé }
90*42fa9665SPhilippe Mathieu-Daudé 
91*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)92*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_be_mmuidx_ra(CPUArchState *env, abi_ptr addr,
93*42fa9665SPhilippe Mathieu-Daudé                       int mmu_idx, uintptr_t ra)
94*42fa9665SPhilippe Mathieu-Daudé {
95*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUW | MO_UNALN, mmu_idx);
96*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldw_mmu(env, addr, oi, ra);
97*42fa9665SPhilippe Mathieu-Daudé }
98*42fa9665SPhilippe Mathieu-Daudé 
99*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)100*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_be_mmuidx_ra(CPUArchState *env, abi_ptr addr,
101*42fa9665SPhilippe Mathieu-Daudé                       int mmu_idx, uintptr_t ra)
102*42fa9665SPhilippe Mathieu-Daudé {
103*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_be_mmuidx_ra(env, addr, mmu_idx, ra);
104*42fa9665SPhilippe Mathieu-Daudé }
105*42fa9665SPhilippe Mathieu-Daudé 
106*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)107*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_be_mmuidx_ra(CPUArchState *env, abi_ptr addr,
108*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
109*42fa9665SPhilippe Mathieu-Daudé {
110*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUL | MO_UNALN, mmu_idx);
111*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_mmu(env, addr, oi, ra);
112*42fa9665SPhilippe Mathieu-Daudé }
113*42fa9665SPhilippe Mathieu-Daudé 
114*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)115*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_be_mmuidx_ra(CPUArchState *env, abi_ptr addr,
116*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
117*42fa9665SPhilippe Mathieu-Daudé {
118*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUQ | MO_UNALN, mmu_idx);
119*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_mmu(env, addr, oi, ra);
120*42fa9665SPhilippe Mathieu-Daudé }
121*42fa9665SPhilippe Mathieu-Daudé 
122*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)123*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_le_mmuidx_ra(CPUArchState *env, abi_ptr addr,
124*42fa9665SPhilippe Mathieu-Daudé                       int mmu_idx, uintptr_t ra)
125*42fa9665SPhilippe Mathieu-Daudé {
126*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUW | MO_UNALN, mmu_idx);
127*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldw_mmu(env, addr, oi, ra);
128*42fa9665SPhilippe Mathieu-Daudé }
129*42fa9665SPhilippe Mathieu-Daudé 
130*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)131*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_le_mmuidx_ra(CPUArchState *env, abi_ptr addr,
132*42fa9665SPhilippe Mathieu-Daudé                       int mmu_idx, uintptr_t ra)
133*42fa9665SPhilippe Mathieu-Daudé {
134*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_le_mmuidx_ra(env, addr, mmu_idx, ra);
135*42fa9665SPhilippe Mathieu-Daudé }
136*42fa9665SPhilippe Mathieu-Daudé 
137*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)138*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_le_mmuidx_ra(CPUArchState *env, abi_ptr addr,
139*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
140*42fa9665SPhilippe Mathieu-Daudé {
141*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUL | MO_UNALN, mmu_idx);
142*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_mmu(env, addr, oi, ra);
143*42fa9665SPhilippe Mathieu-Daudé }
144*42fa9665SPhilippe Mathieu-Daudé 
145*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,int mmu_idx,uintptr_t ra)146*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_le_mmuidx_ra(CPUArchState *env, abi_ptr addr,
147*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
148*42fa9665SPhilippe Mathieu-Daudé {
149*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUQ | MO_UNALN, mmu_idx);
150*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_mmu(env, addr, oi, ra);
151*42fa9665SPhilippe Mathieu-Daudé }
152*42fa9665SPhilippe Mathieu-Daudé 
153*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stb_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint32_t val,int mmu_idx,uintptr_t ra)154*42fa9665SPhilippe Mathieu-Daudé cpu_stb_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint32_t val,
155*42fa9665SPhilippe Mathieu-Daudé                   int mmu_idx, uintptr_t ra)
156*42fa9665SPhilippe Mathieu-Daudé {
157*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_UB, mmu_idx);
158*42fa9665SPhilippe Mathieu-Daudé     cpu_stb_mmu(env, addr, val, oi, ra);
159*42fa9665SPhilippe Mathieu-Daudé }
160*42fa9665SPhilippe Mathieu-Daudé 
161*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint32_t val,int mmu_idx,uintptr_t ra)162*42fa9665SPhilippe Mathieu-Daudé cpu_stw_be_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint32_t val,
163*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
164*42fa9665SPhilippe Mathieu-Daudé {
165*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUW | MO_UNALN, mmu_idx);
166*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_mmu(env, addr, val, oi, ra);
167*42fa9665SPhilippe Mathieu-Daudé }
168*42fa9665SPhilippe Mathieu-Daudé 
169*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint32_t val,int mmu_idx,uintptr_t ra)170*42fa9665SPhilippe Mathieu-Daudé cpu_stl_be_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint32_t val,
171*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
172*42fa9665SPhilippe Mathieu-Daudé {
173*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUL | MO_UNALN, mmu_idx);
174*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_mmu(env, addr, val, oi, ra);
175*42fa9665SPhilippe Mathieu-Daudé }
176*42fa9665SPhilippe Mathieu-Daudé 
177*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_be_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint64_t val,int mmu_idx,uintptr_t ra)178*42fa9665SPhilippe Mathieu-Daudé cpu_stq_be_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint64_t val,
179*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
180*42fa9665SPhilippe Mathieu-Daudé {
181*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_BEUQ | MO_UNALN, mmu_idx);
182*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_mmu(env, addr, val, oi, ra);
183*42fa9665SPhilippe Mathieu-Daudé }
184*42fa9665SPhilippe Mathieu-Daudé 
185*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint32_t val,int mmu_idx,uintptr_t ra)186*42fa9665SPhilippe Mathieu-Daudé cpu_stw_le_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint32_t val,
187*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
188*42fa9665SPhilippe Mathieu-Daudé {
189*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUW | MO_UNALN, mmu_idx);
190*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_mmu(env, addr, val, oi, ra);
191*42fa9665SPhilippe Mathieu-Daudé }
192*42fa9665SPhilippe Mathieu-Daudé 
193*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint32_t val,int mmu_idx,uintptr_t ra)194*42fa9665SPhilippe Mathieu-Daudé cpu_stl_le_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint32_t val,
195*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
196*42fa9665SPhilippe Mathieu-Daudé {
197*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUL | MO_UNALN, mmu_idx);
198*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_mmu(env, addr, val, oi, ra);
199*42fa9665SPhilippe Mathieu-Daudé }
200*42fa9665SPhilippe Mathieu-Daudé 
201*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_le_mmuidx_ra(CPUArchState * env,abi_ptr addr,uint64_t val,int mmu_idx,uintptr_t ra)202*42fa9665SPhilippe Mathieu-Daudé cpu_stq_le_mmuidx_ra(CPUArchState *env, abi_ptr addr, uint64_t val,
203*42fa9665SPhilippe Mathieu-Daudé                      int mmu_idx, uintptr_t ra)
204*42fa9665SPhilippe Mathieu-Daudé {
205*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_LEUQ | MO_UNALN, mmu_idx);
206*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_mmu(env, addr, val, oi, ra);
207*42fa9665SPhilippe Mathieu-Daudé }
208*42fa9665SPhilippe Mathieu-Daudé 
209*42fa9665SPhilippe Mathieu-Daudé /*--------------------------*/
210*42fa9665SPhilippe Mathieu-Daudé 
211*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldub_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)212*42fa9665SPhilippe Mathieu-Daudé cpu_ldub_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
213*42fa9665SPhilippe Mathieu-Daudé {
214*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
215*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldub_mmuidx_ra(env, addr, mmu_index, ra);
216*42fa9665SPhilippe Mathieu-Daudé }
217*42fa9665SPhilippe Mathieu-Daudé 
218*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsb_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)219*42fa9665SPhilippe Mathieu-Daudé cpu_ldsb_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
220*42fa9665SPhilippe Mathieu-Daudé {
221*42fa9665SPhilippe Mathieu-Daudé     return (int8_t)cpu_ldub_data_ra(env, addr, ra);
222*42fa9665SPhilippe Mathieu-Daudé }
223*42fa9665SPhilippe Mathieu-Daudé 
224*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_be_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)225*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
226*42fa9665SPhilippe Mathieu-Daudé {
227*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
228*42fa9665SPhilippe Mathieu-Daudé     return cpu_lduw_be_mmuidx_ra(env, addr, mmu_index, ra);
229*42fa9665SPhilippe Mathieu-Daudé }
230*42fa9665SPhilippe Mathieu-Daudé 
231*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_be_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)232*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
233*42fa9665SPhilippe Mathieu-Daudé {
234*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_be_data_ra(env, addr, ra);
235*42fa9665SPhilippe Mathieu-Daudé }
236*42fa9665SPhilippe Mathieu-Daudé 
237*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_be_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)238*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
239*42fa9665SPhilippe Mathieu-Daudé {
240*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
241*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_be_mmuidx_ra(env, addr, mmu_index, ra);
242*42fa9665SPhilippe Mathieu-Daudé }
243*42fa9665SPhilippe Mathieu-Daudé 
244*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_be_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)245*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_be_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
246*42fa9665SPhilippe Mathieu-Daudé {
247*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
248*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_be_mmuidx_ra(env, addr, mmu_index, ra);
249*42fa9665SPhilippe Mathieu-Daudé }
250*42fa9665SPhilippe Mathieu-Daudé 
251*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_le_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)252*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
253*42fa9665SPhilippe Mathieu-Daudé {
254*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
255*42fa9665SPhilippe Mathieu-Daudé     return cpu_lduw_le_mmuidx_ra(env, addr, mmu_index, ra);
256*42fa9665SPhilippe Mathieu-Daudé }
257*42fa9665SPhilippe Mathieu-Daudé 
258*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_le_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)259*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
260*42fa9665SPhilippe Mathieu-Daudé {
261*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_le_data_ra(env, addr, ra);
262*42fa9665SPhilippe Mathieu-Daudé }
263*42fa9665SPhilippe Mathieu-Daudé 
264*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_le_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)265*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
266*42fa9665SPhilippe Mathieu-Daudé {
267*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
268*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_le_mmuidx_ra(env, addr, mmu_index, ra);
269*42fa9665SPhilippe Mathieu-Daudé }
270*42fa9665SPhilippe Mathieu-Daudé 
271*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_le_data_ra(CPUArchState * env,abi_ptr addr,uintptr_t ra)272*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_le_data_ra(CPUArchState *env, abi_ptr addr, uintptr_t ra)
273*42fa9665SPhilippe Mathieu-Daudé {
274*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
275*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_le_mmuidx_ra(env, addr, mmu_index, ra);
276*42fa9665SPhilippe Mathieu-Daudé }
277*42fa9665SPhilippe Mathieu-Daudé 
278*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stb_data_ra(CPUArchState * env,abi_ptr addr,uint32_t val,uintptr_t ra)279*42fa9665SPhilippe Mathieu-Daudé cpu_stb_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra)
280*42fa9665SPhilippe Mathieu-Daudé {
281*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
282*42fa9665SPhilippe Mathieu-Daudé     cpu_stb_mmuidx_ra(env, addr, val, mmu_index, ra);
283*42fa9665SPhilippe Mathieu-Daudé }
284*42fa9665SPhilippe Mathieu-Daudé 
285*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_be_data_ra(CPUArchState * env,abi_ptr addr,uint32_t val,uintptr_t ra)286*42fa9665SPhilippe Mathieu-Daudé cpu_stw_be_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra)
287*42fa9665SPhilippe Mathieu-Daudé {
288*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
289*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_be_mmuidx_ra(env, addr, val, mmu_index, ra);
290*42fa9665SPhilippe Mathieu-Daudé }
291*42fa9665SPhilippe Mathieu-Daudé 
292*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_be_data_ra(CPUArchState * env,abi_ptr addr,uint32_t val,uintptr_t ra)293*42fa9665SPhilippe Mathieu-Daudé cpu_stl_be_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra)
294*42fa9665SPhilippe Mathieu-Daudé {
295*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
296*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_be_mmuidx_ra(env, addr, val, mmu_index, ra);
297*42fa9665SPhilippe Mathieu-Daudé }
298*42fa9665SPhilippe Mathieu-Daudé 
299*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_be_data_ra(CPUArchState * env,abi_ptr addr,uint64_t val,uintptr_t ra)300*42fa9665SPhilippe Mathieu-Daudé cpu_stq_be_data_ra(CPUArchState *env, abi_ptr addr, uint64_t val, uintptr_t ra)
301*42fa9665SPhilippe Mathieu-Daudé {
302*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
303*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_be_mmuidx_ra(env, addr, val, mmu_index, ra);
304*42fa9665SPhilippe Mathieu-Daudé }
305*42fa9665SPhilippe Mathieu-Daudé 
306*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_le_data_ra(CPUArchState * env,abi_ptr addr,uint32_t val,uintptr_t ra)307*42fa9665SPhilippe Mathieu-Daudé cpu_stw_le_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra)
308*42fa9665SPhilippe Mathieu-Daudé {
309*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
310*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_le_mmuidx_ra(env, addr, val, mmu_index, ra);
311*42fa9665SPhilippe Mathieu-Daudé }
312*42fa9665SPhilippe Mathieu-Daudé 
313*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_le_data_ra(CPUArchState * env,abi_ptr addr,uint32_t val,uintptr_t ra)314*42fa9665SPhilippe Mathieu-Daudé cpu_stl_le_data_ra(CPUArchState *env, abi_ptr addr, uint32_t val, uintptr_t ra)
315*42fa9665SPhilippe Mathieu-Daudé {
316*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
317*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_le_mmuidx_ra(env, addr, val, mmu_index, ra);
318*42fa9665SPhilippe Mathieu-Daudé }
319*42fa9665SPhilippe Mathieu-Daudé 
320*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_le_data_ra(CPUArchState * env,abi_ptr addr,uint64_t val,uintptr_t ra)321*42fa9665SPhilippe Mathieu-Daudé cpu_stq_le_data_ra(CPUArchState *env, abi_ptr addr, uint64_t val, uintptr_t ra)
322*42fa9665SPhilippe Mathieu-Daudé {
323*42fa9665SPhilippe Mathieu-Daudé     int mmu_index = cpu_mmu_index(env_cpu(env), false);
324*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_le_mmuidx_ra(env, addr, val, mmu_index, ra);
325*42fa9665SPhilippe Mathieu-Daudé }
326*42fa9665SPhilippe Mathieu-Daudé 
327*42fa9665SPhilippe Mathieu-Daudé /*--------------------------*/
328*42fa9665SPhilippe Mathieu-Daudé 
329*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldub_data(CPUArchState * env,abi_ptr addr)330*42fa9665SPhilippe Mathieu-Daudé cpu_ldub_data(CPUArchState *env, abi_ptr addr)
331*42fa9665SPhilippe Mathieu-Daudé {
332*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldub_data_ra(env, addr, 0);
333*42fa9665SPhilippe Mathieu-Daudé }
334*42fa9665SPhilippe Mathieu-Daudé 
335*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsb_data(CPUArchState * env,abi_ptr addr)336*42fa9665SPhilippe Mathieu-Daudé cpu_ldsb_data(CPUArchState *env, abi_ptr addr)
337*42fa9665SPhilippe Mathieu-Daudé {
338*42fa9665SPhilippe Mathieu-Daudé     return (int8_t)cpu_ldub_data(env, addr);
339*42fa9665SPhilippe Mathieu-Daudé }
340*42fa9665SPhilippe Mathieu-Daudé 
341*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_be_data(CPUArchState * env,abi_ptr addr)342*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_be_data(CPUArchState *env, abi_ptr addr)
343*42fa9665SPhilippe Mathieu-Daudé {
344*42fa9665SPhilippe Mathieu-Daudé     return cpu_lduw_be_data_ra(env, addr, 0);
345*42fa9665SPhilippe Mathieu-Daudé }
346*42fa9665SPhilippe Mathieu-Daudé 
347*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_be_data(CPUArchState * env,abi_ptr addr)348*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_be_data(CPUArchState *env, abi_ptr addr)
349*42fa9665SPhilippe Mathieu-Daudé {
350*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_be_data(env, addr);
351*42fa9665SPhilippe Mathieu-Daudé }
352*42fa9665SPhilippe Mathieu-Daudé 
353*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_be_data(CPUArchState * env,abi_ptr addr)354*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_be_data(CPUArchState *env, abi_ptr addr)
355*42fa9665SPhilippe Mathieu-Daudé {
356*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_be_data_ra(env, addr, 0);
357*42fa9665SPhilippe Mathieu-Daudé }
358*42fa9665SPhilippe Mathieu-Daudé 
359*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_be_data(CPUArchState * env,abi_ptr addr)360*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_be_data(CPUArchState *env, abi_ptr addr)
361*42fa9665SPhilippe Mathieu-Daudé {
362*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_be_data_ra(env, addr, 0);
363*42fa9665SPhilippe Mathieu-Daudé }
364*42fa9665SPhilippe Mathieu-Daudé 
365*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_lduw_le_data(CPUArchState * env,abi_ptr addr)366*42fa9665SPhilippe Mathieu-Daudé cpu_lduw_le_data(CPUArchState *env, abi_ptr addr)
367*42fa9665SPhilippe Mathieu-Daudé {
368*42fa9665SPhilippe Mathieu-Daudé     return cpu_lduw_le_data_ra(env, addr, 0);
369*42fa9665SPhilippe Mathieu-Daudé }
370*42fa9665SPhilippe Mathieu-Daudé 
371*42fa9665SPhilippe Mathieu-Daudé static inline int
cpu_ldsw_le_data(CPUArchState * env,abi_ptr addr)372*42fa9665SPhilippe Mathieu-Daudé cpu_ldsw_le_data(CPUArchState *env, abi_ptr addr)
373*42fa9665SPhilippe Mathieu-Daudé {
374*42fa9665SPhilippe Mathieu-Daudé     return (int16_t)cpu_lduw_le_data(env, addr);
375*42fa9665SPhilippe Mathieu-Daudé }
376*42fa9665SPhilippe Mathieu-Daudé 
377*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t
cpu_ldl_le_data(CPUArchState * env,abi_ptr addr)378*42fa9665SPhilippe Mathieu-Daudé cpu_ldl_le_data(CPUArchState *env, abi_ptr addr)
379*42fa9665SPhilippe Mathieu-Daudé {
380*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_le_data_ra(env, addr, 0);
381*42fa9665SPhilippe Mathieu-Daudé }
382*42fa9665SPhilippe Mathieu-Daudé 
383*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t
cpu_ldq_le_data(CPUArchState * env,abi_ptr addr)384*42fa9665SPhilippe Mathieu-Daudé cpu_ldq_le_data(CPUArchState *env, abi_ptr addr)
385*42fa9665SPhilippe Mathieu-Daudé {
386*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_le_data_ra(env, addr, 0);
387*42fa9665SPhilippe Mathieu-Daudé }
388*42fa9665SPhilippe Mathieu-Daudé 
389*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stb_data(CPUArchState * env,abi_ptr addr,uint32_t val)390*42fa9665SPhilippe Mathieu-Daudé cpu_stb_data(CPUArchState *env, abi_ptr addr, uint32_t val)
391*42fa9665SPhilippe Mathieu-Daudé {
392*42fa9665SPhilippe Mathieu-Daudé     cpu_stb_data_ra(env, addr, val, 0);
393*42fa9665SPhilippe Mathieu-Daudé }
394*42fa9665SPhilippe Mathieu-Daudé 
395*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_be_data(CPUArchState * env,abi_ptr addr,uint32_t val)396*42fa9665SPhilippe Mathieu-Daudé cpu_stw_be_data(CPUArchState *env, abi_ptr addr, uint32_t val)
397*42fa9665SPhilippe Mathieu-Daudé {
398*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_be_data_ra(env, addr, val, 0);
399*42fa9665SPhilippe Mathieu-Daudé }
400*42fa9665SPhilippe Mathieu-Daudé 
401*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_be_data(CPUArchState * env,abi_ptr addr,uint32_t val)402*42fa9665SPhilippe Mathieu-Daudé cpu_stl_be_data(CPUArchState *env, abi_ptr addr, uint32_t val)
403*42fa9665SPhilippe Mathieu-Daudé {
404*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_be_data_ra(env, addr, val, 0);
405*42fa9665SPhilippe Mathieu-Daudé }
406*42fa9665SPhilippe Mathieu-Daudé 
407*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_be_data(CPUArchState * env,abi_ptr addr,uint64_t val)408*42fa9665SPhilippe Mathieu-Daudé cpu_stq_be_data(CPUArchState *env, abi_ptr addr, uint64_t val)
409*42fa9665SPhilippe Mathieu-Daudé {
410*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_be_data_ra(env, addr, val, 0);
411*42fa9665SPhilippe Mathieu-Daudé }
412*42fa9665SPhilippe Mathieu-Daudé 
413*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stw_le_data(CPUArchState * env,abi_ptr addr,uint32_t val)414*42fa9665SPhilippe Mathieu-Daudé cpu_stw_le_data(CPUArchState *env, abi_ptr addr, uint32_t val)
415*42fa9665SPhilippe Mathieu-Daudé {
416*42fa9665SPhilippe Mathieu-Daudé     cpu_stw_le_data_ra(env, addr, val, 0);
417*42fa9665SPhilippe Mathieu-Daudé }
418*42fa9665SPhilippe Mathieu-Daudé 
419*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stl_le_data(CPUArchState * env,abi_ptr addr,uint32_t val)420*42fa9665SPhilippe Mathieu-Daudé cpu_stl_le_data(CPUArchState *env, abi_ptr addr, uint32_t val)
421*42fa9665SPhilippe Mathieu-Daudé {
422*42fa9665SPhilippe Mathieu-Daudé     cpu_stl_le_data_ra(env, addr, val, 0);
423*42fa9665SPhilippe Mathieu-Daudé }
424*42fa9665SPhilippe Mathieu-Daudé 
425*42fa9665SPhilippe Mathieu-Daudé static inline void
cpu_stq_le_data(CPUArchState * env,abi_ptr addr,uint64_t val)426*42fa9665SPhilippe Mathieu-Daudé cpu_stq_le_data(CPUArchState *env, abi_ptr addr, uint64_t val)
427*42fa9665SPhilippe Mathieu-Daudé {
428*42fa9665SPhilippe Mathieu-Daudé     cpu_stq_le_data_ra(env, addr, val, 0);
429*42fa9665SPhilippe Mathieu-Daudé }
430*42fa9665SPhilippe Mathieu-Daudé 
431*42fa9665SPhilippe Mathieu-Daudé #if TARGET_BIG_ENDIAN
432*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_data        cpu_lduw_be_data
433*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_data        cpu_ldsw_be_data
434*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_data         cpu_ldl_be_data
435*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_data         cpu_ldq_be_data
436*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_data_ra     cpu_lduw_be_data_ra
437*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_data_ra     cpu_ldsw_be_data_ra
438*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_data_ra      cpu_ldl_be_data_ra
439*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_data_ra      cpu_ldq_be_data_ra
440*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_mmuidx_ra   cpu_lduw_be_mmuidx_ra
441*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_mmuidx_ra   cpu_ldsw_be_mmuidx_ra
442*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_mmuidx_ra    cpu_ldl_be_mmuidx_ra
443*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_mmuidx_ra    cpu_ldq_be_mmuidx_ra
444*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_data         cpu_stw_be_data
445*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_data         cpu_stl_be_data
446*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_data         cpu_stq_be_data
447*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_data_ra      cpu_stw_be_data_ra
448*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_data_ra      cpu_stl_be_data_ra
449*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_data_ra      cpu_stq_be_data_ra
450*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_mmuidx_ra    cpu_stw_be_mmuidx_ra
451*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_mmuidx_ra    cpu_stl_be_mmuidx_ra
452*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_mmuidx_ra    cpu_stq_be_mmuidx_ra
453*42fa9665SPhilippe Mathieu-Daudé #else
454*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_data        cpu_lduw_le_data
455*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_data        cpu_ldsw_le_data
456*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_data         cpu_ldl_le_data
457*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_data         cpu_ldq_le_data
458*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_data_ra     cpu_lduw_le_data_ra
459*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_data_ra     cpu_ldsw_le_data_ra
460*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_data_ra      cpu_ldl_le_data_ra
461*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_data_ra      cpu_ldq_le_data_ra
462*42fa9665SPhilippe Mathieu-Daudé # define cpu_lduw_mmuidx_ra   cpu_lduw_le_mmuidx_ra
463*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldsw_mmuidx_ra   cpu_ldsw_le_mmuidx_ra
464*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldl_mmuidx_ra    cpu_ldl_le_mmuidx_ra
465*42fa9665SPhilippe Mathieu-Daudé # define cpu_ldq_mmuidx_ra    cpu_ldq_le_mmuidx_ra
466*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_data         cpu_stw_le_data
467*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_data         cpu_stl_le_data
468*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_data         cpu_stq_le_data
469*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_data_ra      cpu_stw_le_data_ra
470*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_data_ra      cpu_stl_le_data_ra
471*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_data_ra      cpu_stq_le_data_ra
472*42fa9665SPhilippe Mathieu-Daudé # define cpu_stw_mmuidx_ra    cpu_stw_le_mmuidx_ra
473*42fa9665SPhilippe Mathieu-Daudé # define cpu_stl_mmuidx_ra    cpu_stl_le_mmuidx_ra
474*42fa9665SPhilippe Mathieu-Daudé # define cpu_stq_mmuidx_ra    cpu_stq_le_mmuidx_ra
475*42fa9665SPhilippe Mathieu-Daudé #endif
476*42fa9665SPhilippe Mathieu-Daudé 
cpu_ldub_code(CPUArchState * env,abi_ptr addr)477*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t cpu_ldub_code(CPUArchState *env, abi_ptr addr)
478*42fa9665SPhilippe Mathieu-Daudé {
479*42fa9665SPhilippe Mathieu-Daudé     CPUState *cs = env_cpu(env);
480*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_UB, cpu_mmu_index(cs, true));
481*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldb_code_mmu(env, addr, oi, 0);
482*42fa9665SPhilippe Mathieu-Daudé }
483*42fa9665SPhilippe Mathieu-Daudé 
cpu_lduw_code(CPUArchState * env,abi_ptr addr)484*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t cpu_lduw_code(CPUArchState *env, abi_ptr addr)
485*42fa9665SPhilippe Mathieu-Daudé {
486*42fa9665SPhilippe Mathieu-Daudé     CPUState *cs = env_cpu(env);
487*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_TEUW, cpu_mmu_index(cs, true));
488*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldw_code_mmu(env, addr, oi, 0);
489*42fa9665SPhilippe Mathieu-Daudé }
490*42fa9665SPhilippe Mathieu-Daudé 
cpu_ldl_code(CPUArchState * env,abi_ptr addr)491*42fa9665SPhilippe Mathieu-Daudé static inline uint32_t cpu_ldl_code(CPUArchState *env, abi_ptr addr)
492*42fa9665SPhilippe Mathieu-Daudé {
493*42fa9665SPhilippe Mathieu-Daudé     CPUState *cs = env_cpu(env);
494*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_TEUL, cpu_mmu_index(cs, true));
495*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldl_code_mmu(env, addr, oi, 0);
496*42fa9665SPhilippe Mathieu-Daudé }
497*42fa9665SPhilippe Mathieu-Daudé 
cpu_ldq_code(CPUArchState * env,abi_ptr addr)498*42fa9665SPhilippe Mathieu-Daudé static inline uint64_t cpu_ldq_code(CPUArchState *env, abi_ptr addr)
499*42fa9665SPhilippe Mathieu-Daudé {
500*42fa9665SPhilippe Mathieu-Daudé     CPUState *cs = env_cpu(env);
501*42fa9665SPhilippe Mathieu-Daudé     MemOpIdx oi = make_memop_idx(MO_TEUQ, cpu_mmu_index(cs, true));
502*42fa9665SPhilippe Mathieu-Daudé     return cpu_ldq_code_mmu(env, addr, oi, 0);
503*42fa9665SPhilippe Mathieu-Daudé }
504*42fa9665SPhilippe Mathieu-Daudé 
505*42fa9665SPhilippe Mathieu-Daudé #endif /* ACCEL_TCG_CPU_LDST_H */
506