@@ -155,8 +155,7 @@ GEN(bgeu, {
155
155
GEN (lb , {
156
156
memory_t * m = PRIV (rv )-> mem ;
157
157
vm_reg [0 ] = ra_load (state , ir -> rs1 );
158
- IIF (RV32_HAS (SYSTEM ))
159
- (
158
+ IIF (RV32_HAS (SYSTEM ))(
160
159
{
161
160
emit_load_imm_sext (state , temp_reg , ir -> imm );
162
161
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -180,7 +179,7 @@ GEN(lb, {
180
179
emit_cmp_imm32 (state , temp_reg , 0 );
181
180
uint32_t jump_loc_0 = state -> offset ;
182
181
emit_jcc_offset (state , 0x84 );
183
- vm_reg [1 ] = map_vm_reg (state , ir -> rd );
182
+ vm_reg [1 ] = map_vm_reg_reserved (state , ir -> rd , vm_reg [ 0 ] );
184
183
185
184
emit_load (state , S32 , parameter_reg [0 ], vm_reg [1 ],
186
185
offsetof(riscv_t , X ) + 4 * ir -> rd );
@@ -207,8 +206,7 @@ GEN(lb, {
207
206
GEN (lh , {
208
207
memory_t * m = PRIV (rv )-> mem ;
209
208
vm_reg [0 ] = ra_load (state , ir -> rs1 );
210
- IIF (RV32_HAS (SYSTEM ))
211
- (
209
+ IIF (RV32_HAS (SYSTEM ))(
212
210
{
213
211
emit_load_imm_sext (state , temp_reg , ir -> imm );
214
212
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -232,7 +230,7 @@ GEN(lh, {
232
230
emit_cmp_imm32 (state , temp_reg , 0 );
233
231
uint32_t jump_loc_0 = state -> offset ;
234
232
emit_jcc_offset (state , 0x84 );
235
- vm_reg [1 ] = map_vm_reg (state , ir -> rd );
233
+ vm_reg [1 ] = map_vm_reg_reserved (state , ir -> rd , vm_reg [ 0 ] );
236
234
237
235
emit_load (state , S32 , parameter_reg [0 ], vm_reg [1 ],
238
236
offsetof(riscv_t , X ) + 4 * ir -> rd );
@@ -259,8 +257,7 @@ GEN(lh, {
259
257
GEN (lw , {
260
258
memory_t * m = PRIV (rv )-> mem ;
261
259
vm_reg [0 ] = ra_load (state , ir -> rs1 );
262
- IIF (RV32_HAS (SYSTEM ))
263
- (
260
+ IIF (RV32_HAS (SYSTEM ))(
264
261
{
265
262
emit_load_imm_sext (state , temp_reg , ir -> imm );
266
263
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -284,7 +281,7 @@ GEN(lw, {
284
281
emit_cmp_imm32 (state , temp_reg , 0 );
285
282
uint32_t jump_loc_0 = state -> offset ;
286
283
emit_jcc_offset (state , 0x84 );
287
- vm_reg [1 ] = map_vm_reg (state , ir -> rd );
284
+ vm_reg [1 ] = map_vm_reg_reserved (state , ir -> rd , vm_reg [ 0 ] );
288
285
289
286
emit_load (state , S32 , parameter_reg [0 ], vm_reg [1 ],
290
287
offsetof(riscv_t , X ) + 4 * ir -> rd );
@@ -311,8 +308,7 @@ GEN(lw, {
311
308
GEN (lbu , {
312
309
memory_t * m = PRIV (rv )-> mem ;
313
310
vm_reg [0 ] = ra_load (state , ir -> rs1 );
314
- IIF (RV32_HAS (SYSTEM ))
315
- (
311
+ IIF (RV32_HAS (SYSTEM ))(
316
312
{
317
313
emit_load_imm_sext (state , temp_reg , ir -> imm );
318
314
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -336,7 +332,7 @@ GEN(lbu, {
336
332
emit_cmp_imm32 (state , temp_reg , 0 );
337
333
uint32_t jump_loc_0 = state -> offset ;
338
334
emit_jcc_offset (state , 0x84 );
339
- vm_reg [1 ] = map_vm_reg (state , ir -> rd );
335
+ vm_reg [1 ] = map_vm_reg_reserved (state , ir -> rd , vm_reg [ 0 ] );
340
336
341
337
emit_load (state , S32 , parameter_reg [0 ], vm_reg [1 ],
342
338
offsetof(riscv_t , X ) + 4 * ir -> rd );
@@ -363,8 +359,7 @@ GEN(lbu, {
363
359
GEN (lhu , {
364
360
memory_t * m = PRIV (rv )-> mem ;
365
361
vm_reg [0 ] = ra_load (state , ir -> rs1 );
366
- IIF (RV32_HAS (SYSTEM ))
367
- (
362
+ IIF (RV32_HAS (SYSTEM ))(
368
363
{
369
364
emit_load_imm_sext (state , temp_reg , ir -> imm );
370
365
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -388,7 +383,7 @@ GEN(lhu, {
388
383
emit_cmp_imm32 (state , temp_reg , 0 );
389
384
uint32_t jump_loc_0 = state -> offset ;
390
385
emit_jcc_offset (state , 0x84 );
391
- vm_reg [1 ] = map_vm_reg (state , ir -> rd );
386
+ vm_reg [1 ] = map_vm_reg_reserved (state , ir -> rd , vm_reg [ 0 ] );
392
387
393
388
emit_load (state , S32 , parameter_reg [0 ], vm_reg [1 ],
394
389
offsetof(riscv_t , X ) + 4 * ir -> rd );
@@ -415,8 +410,7 @@ GEN(lhu, {
415
410
GEN (sb , {
416
411
memory_t * m = PRIV (rv )-> mem ;
417
412
vm_reg [0 ] = ra_load (state , ir -> rs1 );
418
- IIF (RV32_HAS (SYSTEM ))
419
- (
413
+ IIF (RV32_HAS (SYSTEM ))(
420
414
{
421
415
emit_load_imm_sext (state , temp_reg , ir -> imm );
422
416
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -465,8 +459,7 @@ GEN(sb, {
465
459
GEN (sh , {
466
460
memory_t * m = PRIV (rv )-> mem ;
467
461
vm_reg [0 ] = ra_load (state , ir -> rs1 );
468
- IIF (RV32_HAS (SYSTEM ))
469
- (
462
+ IIF (RV32_HAS (SYSTEM ))(
470
463
{
471
464
emit_load_imm_sext (state , temp_reg , ir -> imm );
472
465
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
@@ -515,8 +508,7 @@ GEN(sh, {
515
508
GEN (sw , {
516
509
memory_t * m = PRIV (rv )-> mem ;
517
510
vm_reg [0 ] = ra_load (state , ir -> rs1 );
518
- IIF (RV32_HAS (SYSTEM ))
519
- (
511
+ IIF (RV32_HAS (SYSTEM ))(
520
512
{
521
513
emit_load_imm_sext (state , temp_reg , ir -> imm );
522
514
emit_alu32 (state , 0x01 , vm_reg [0 ], temp_reg );
0 commit comments