203
203
CALL_INITED_MEMORY; \
204
204
POSTCALL; \
205
205
1: \
206
- movq address_reg, TEMP1; \
207
- addq $length, TEMP1; \
206
+ leaq length(address_reg), TEMP1; \
208
207
subq $1 , TEMP1; \
209
208
shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
210
209
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES_PTR(MACHINE), TEMP3; \
225
224
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_READ_FRAME(MACHINE), TEMP2; \
226
225
cmp TEMP2, TEMP1; \
227
226
jne 3f; \
228
- movq address_reg, TEMP2; \
229
- addq $length, TEMP2; \
227
+ leaq length(address_reg), TEMP2; \
230
228
shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP2; \
231
229
cmp TEMP2, TEMP1; \
232
230
je 2f; \
245
243
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_READ_FRAME(MACHINE), TEMP2; \
246
244
cmp TEMP2, TEMP1; \
247
245
jne 3f; \
248
- movq address_reg, TEMP2; \
249
- addq $length, TEMP2; \
246
+ leaq length(address_reg), TEMP2; \
250
247
shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP2; \
251
248
cmp TEMP2, TEMP1; \
252
249
je 2f; \
265
262
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_WRITE_PAGE(MACHINE), TEMP2; \
266
263
cmp TEMP2, TEMP1; \
267
264
jne 3f;\
268
- movq address_reg, TEMP2; \
269
- addq $length, TEMP2; \
265
+ leaq length(address_reg), TEMP2; \
270
266
shr $CKB_VM_ASM_RISCV_PAGE_SHIFTS, TEMP2; \
271
267
cmp TEMP2, TEMP1; \
272
268
je 2f;\
297
293
CALL_INITED_MEMORY; \
298
294
POSTCALL; \
299
295
1: \
300
- movq TEMP2, TEMP1; \
301
- addq $1 , TEMP1; \
296
+ leaq 1 (TEMP2), TEMP1; \
302
297
shl $CKB_VM_ASM_RISCV_PAGE_SHIFTS, TEMP1; \
303
- movq address_reg, TEMP3; \
304
- addq $length, TEMP3; \
298
+ leaq length(address_reg), TEMP3; \
305
299
cmp TEMP1, TEMP3; \
306
300
jbe 2f; \
307
301
shr $CKB_VM_ASM_RISCV_PAGE_SHIFTS, TEMP1; \
@@ -460,8 +454,7 @@ ckb_vm_x64_execute:
460
454
movq CKB_VM_ASM_INVOKE_DATA_OFFSET_FIXED_TRACES(INVOKE_DATA), %rdx
461
455
prefetcht2 0 (%rdx , %rax )
462
456
lea CKB_VM_ASM_TRACE_OFFSET_THREADS(TRACE), INST_PC
463
- mov INST_PC, INST_ARGS
464
- add $8 , INST_ARGS
457
+ lea 8 (INST_PC), INST_ARGS
465
458
NEXT_INST
466
459
.p2align 3
467
460
.CKB_VM_ASM_LABEL_OP_CUSTOM_ASM_TRACE_JUMP:
@@ -478,8 +471,7 @@ ckb_vm_x64_execute:
478
471
movq %rax , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE)
479
472
addq %rdx , PC_ADDRESS
480
473
lea CKB_VM_ASM_TRACE_OFFSET_THREADS(TRACE), INST_PC
481
- mov INST_PC, INST_ARGS
482
- add $8 , INST_ARGS
474
+ lea 8 (INST_PC), INST_ARGS
483
475
NEXT_INST
484
476
.p2align 3
485
477
.prepare_trace:
@@ -507,8 +499,7 @@ ckb_vm_x64_execute:
507
499
movq %rax , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE)
508
500
addq %rdx , PC_ADDRESS
509
501
lea CKB_VM_ASM_TRACE_OFFSET_THREADS(TRACE), INST_PC
510
- mov INST_PC, INST_ARGS
511
- add $8 , INST_ARGS
502
+ lea 8 (INST_PC), INST_ARGS
512
503
NEXT_INST
513
504
.p2align 3
514
505
.CKB_VM_ASM_LABEL_OP_ADDI:
0 commit comments