@@ -142,6 +142,7 @@ static void *MTS_PROTO(lookup)(cpu_mips_t *cpu,m_uint64_t vaddr)
142
142
/* === MIPS Memory Operations ============================================= */
143
143
144
144
/* LB: Load Byte */
145
+ __attribute__((force_align_arg_pointer ))
145
146
void MTS_PROTO (lb )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
146
147
{
147
148
m_uint64_t data ;
@@ -153,6 +154,7 @@ void MTS_PROTO(lb)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
153
154
}
154
155
155
156
/* LBU: Load Byte Unsigned */
157
+ __attribute__((force_align_arg_pointer ))
156
158
void MTS_PROTO (lbu )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
157
159
{
158
160
m_uint64_t data ;
@@ -164,6 +166,7 @@ void MTS_PROTO(lbu)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
164
166
}
165
167
166
168
/* LH: Load Half-Word */
169
+ __attribute__((force_align_arg_pointer ))
167
170
void MTS_PROTO (lh )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
168
171
{
169
172
m_uint64_t data ;
@@ -175,6 +178,7 @@ void MTS_PROTO(lh)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
175
178
}
176
179
177
180
/* LHU: Load Half-Word Unsigned */
181
+ __attribute__((force_align_arg_pointer ))
178
182
void MTS_PROTO (lhu )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
179
183
{
180
184
m_uint64_t data ;
@@ -186,6 +190,7 @@ void MTS_PROTO(lhu)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
186
190
}
187
191
188
192
/* LW: Load Word */
193
+ __attribute__((force_align_arg_pointer ))
189
194
void MTS_PROTO (lw )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
190
195
{
191
196
m_uint64_t data ;
@@ -197,6 +202,7 @@ void MTS_PROTO(lw)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
197
202
}
198
203
199
204
/* LWU: Load Word Unsigned */
205
+ __attribute__((force_align_arg_pointer ))
200
206
void MTS_PROTO (lwu )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
201
207
{
202
208
m_uint64_t data ;
@@ -208,6 +214,7 @@ void MTS_PROTO(lwu)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
208
214
}
209
215
210
216
/* LD: Load Double-Word */
217
+ __attribute__((force_align_arg_pointer ))
211
218
void MTS_PROTO (ld )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
212
219
{
213
220
m_uint64_t data ;
@@ -219,6 +226,7 @@ void MTS_PROTO(ld)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
219
226
}
220
227
221
228
/* SB: Store Byte */
229
+ __attribute__((force_align_arg_pointer ))
222
230
void MTS_PROTO (sb )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
223
231
{
224
232
m_uint64_t data ;
@@ -230,6 +238,7 @@ void MTS_PROTO(sb)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
230
238
}
231
239
232
240
/* SH: Store Half-Word */
241
+ __attribute__((force_align_arg_pointer ))
233
242
void MTS_PROTO (sh )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
234
243
{
235
244
m_uint64_t data ;
@@ -241,6 +250,7 @@ void MTS_PROTO(sh)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
241
250
}
242
251
243
252
/* SW: Store Word */
253
+ __attribute__((force_align_arg_pointer ))
244
254
void MTS_PROTO (sw )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
245
255
{
246
256
m_uint64_t data ;
@@ -252,6 +262,7 @@ void MTS_PROTO(sw)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
252
262
}
253
263
254
264
/* SD: Store Double-Word */
265
+ __attribute__((force_align_arg_pointer ))
255
266
void MTS_PROTO (sd )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
256
267
{
257
268
m_uint64_t data ;
@@ -263,6 +274,7 @@ void MTS_PROTO(sd)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
263
274
}
264
275
265
276
/* LDC1: Load Double-Word To Coprocessor 1 */
277
+ __attribute__((force_align_arg_pointer ))
266
278
void MTS_PROTO (ldc1 )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
267
279
{
268
280
m_uint64_t data ;
@@ -274,6 +286,7 @@ void MTS_PROTO(ldc1)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
274
286
}
275
287
276
288
/* LWL: Load Word Left */
289
+ __attribute__((force_align_arg_pointer ))
277
290
void MTS_PROTO (lwl )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
278
291
{
279
292
m_uint64_t r_mask ,naddr ;
@@ -297,6 +310,7 @@ void MTS_PROTO(lwl)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
297
310
}
298
311
299
312
/* LWR: Load Word Right */
313
+ __attribute__((force_align_arg_pointer ))
300
314
void MTS_PROTO (lwr )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
301
315
{
302
316
m_uint64_t r_mask ,naddr ;
@@ -321,6 +335,7 @@ void MTS_PROTO(lwr)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
321
335
}
322
336
323
337
/* LDL: Load Double-Word Left */
338
+ __attribute__((force_align_arg_pointer ))
324
339
void MTS_PROTO (ldl )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
325
340
{
326
341
m_uint64_t r_mask ,naddr ;
@@ -343,6 +358,7 @@ void MTS_PROTO(ldl)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
343
358
}
344
359
345
360
/* LDR: Load Double-Word Right */
361
+ __attribute__((force_align_arg_pointer ))
346
362
void MTS_PROTO (ldr )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
347
363
{
348
364
m_uint64_t r_mask ,naddr ;
@@ -365,6 +381,7 @@ void MTS_PROTO(ldr)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
365
381
}
366
382
367
383
/* SWL: Store Word Left */
384
+ __attribute__((force_align_arg_pointer ))
368
385
void MTS_PROTO (swl )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
369
386
{
370
387
m_uint64_t d_mask ,naddr ;
@@ -389,6 +406,7 @@ void MTS_PROTO(swl)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
389
406
}
390
407
391
408
/* SWR: Store Word Right */
409
+ __attribute__((force_align_arg_pointer ))
392
410
void MTS_PROTO (swr )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
393
411
{
394
412
m_uint64_t d_mask ,naddr ;
@@ -413,6 +431,7 @@ void MTS_PROTO(swr)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
413
431
}
414
432
415
433
/* SDL: Store Double-Word Left */
434
+ __attribute__((force_align_arg_pointer ))
416
435
void MTS_PROTO (sdl )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
417
436
{
418
437
m_uint64_t d_mask ,naddr ;
@@ -437,6 +456,7 @@ void MTS_PROTO(sdl)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
437
456
}
438
457
439
458
/* SDR: Store Double-Word Right */
459
+ __attribute__((force_align_arg_pointer ))
440
460
void MTS_PROTO (sdr )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
441
461
{
442
462
m_uint64_t d_mask ,naddr ;
@@ -461,6 +481,7 @@ void MTS_PROTO(sdr)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
461
481
}
462
482
463
483
/* LL: Load Linked */
484
+ __attribute__((force_align_arg_pointer ))
464
485
void MTS_PROTO (ll )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
465
486
{
466
487
m_uint64_t data ;
@@ -474,6 +495,7 @@ void MTS_PROTO(ll)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
474
495
}
475
496
476
497
/* SC: Store Conditional */
498
+ __attribute__((force_align_arg_pointer ))
477
499
void MTS_PROTO (sc )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
478
500
{
479
501
m_uint64_t data ;
@@ -489,6 +511,7 @@ void MTS_PROTO(sc)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
489
511
}
490
512
491
513
/* SDC1: Store Double-Word from Coprocessor 1 */
514
+ __attribute__((force_align_arg_pointer ))
492
515
void MTS_PROTO (sdc1 )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int reg )
493
516
{
494
517
m_uint64_t data ;
@@ -500,6 +523,7 @@ void MTS_PROTO(sdc1)(cpu_mips_t *cpu,m_uint64_t vaddr,u_int reg)
500
523
}
501
524
502
525
/* CACHE: Cache operation */
526
+ __attribute__((force_align_arg_pointer ))
503
527
void MTS_PROTO (cache )(cpu_mips_t * cpu ,m_uint64_t vaddr ,u_int op )
504
528
{
505
529
mips64_jit_tcb_t * block ;
0 commit comments