193
193
shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
194
194
movq TEMP1, CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_READ_FRAME(MACHINE); \
195
195
movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), TEMP2d; \
196
- cmp $0 , TEMP2d; \
196
+ test TEMP2d , TEMP2d; \
197
197
jne 1f; \
198
198
movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
199
199
PREPCALL; \
207
207
subq $1 , TEMP1; \
208
208
shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
209
209
movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), TEMP2d; \
210
- cmp $0 , TEMP2d; \
210
+ test TEMP2d , TEMP2d; \
211
211
jne 2f; \
212
212
movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1);\
213
213
PREPCALL; \
283
283
movq TEMP1, TEMP2; \
284
284
shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
285
285
movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), temp_regd; \
286
- cmp $0 , temp_regd; \
286
+ test temp_regd , temp_regd; \
287
287
jne 1f; \
288
288
movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
289
289
PREPCALL; \
312
312
movb TEMP2b, CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FLAGS(MACHINE, TEMP1); \
313
313
shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
314
314
movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), temp_regd; \
315
- cmp $0 , temp_regd; \
315
+ test temp_regd , temp_regd; \
316
316
jne 2f; \
317
317
movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
318
318
PREPCALL; \
@@ -441,7 +441,7 @@ ckb_vm_x64_execute:
441
441
cmp %rcx , %rdx
442
442
jne .exit_trace
443
443
movzbl CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
444
- cmp $0 , %rdx
444
+ test %rdx , %rdx
445
445
je .exit_trace
446
446
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
447
447
addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -462,7 +462,7 @@ ckb_vm_x64_execute:
462
462
.p2align 3
463
463
.prepare_trace:
464
464
movzbl 0 (PAUSE ), %eax
465
- cmp $0 , %rax
465
+ test %rax , %rax
466
466
jnz .exit_pause
467
467
LOAD_PC(%rax , %eax , %rcx , %ecx , TEMP3d)
468
468
shr $2 , %eax
@@ -473,7 +473,7 @@ ckb_vm_x64_execute:
473
473
cmp %rcx , %rdx
474
474
jne .exit_trace
475
475
movzbl CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
476
- cmp $0 , %rdx
476
+ test %rdx , %rdx
477
477
je .exit_trace
478
478
movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
479
479
addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -609,7 +609,7 @@ ckb_vm_x64_execute:
609
609
jne .div_branch1
610
610
jmp .div_branch3
611
611
.div_branch1:
612
- cmp $0 , RS2r
612
+ test RS2r , RS2r
613
613
jne .div_branch2
614
614
movq $UINT64_MAX, RS1
615
615
jmp .div_branch3
@@ -626,7 +626,7 @@ ckb_vm_x64_execute:
626
626
.CKB_VM_ASM_LABEL_OP_DIVU:
627
627
DECODE_R
628
628
movq REGISTER_ADDRESS(RS2r), RS2r
629
- cmp $0 , RS2r
629
+ test RS2r , RS2r
630
630
jne .divu_branch1
631
631
WRITE_RD_VALUE($UINT64_MAX, RS2r)
632
632
NEXT_INST
@@ -646,7 +646,7 @@ ckb_vm_x64_execute:
646
646
DECODE_R
647
647
movq REGISTER_ADDRESS(RS2r), RS2r
648
648
mov RS2rd, RS2rd
649
- cmp $0 , RS2r
649
+ test RS2r , RS2r
650
650
jne .divuw_branch1
651
651
WRITE_RD_VALUE($UINT64_MAX, RS2r)
652
652
NEXT_INST
@@ -678,7 +678,7 @@ ckb_vm_x64_execute:
678
678
jne .divw_branch1
679
679
jmp .divw_branch3
680
680
.divw_branch1:
681
- cmp $0 , RS2r
681
+ test RS2r , RS2r
682
682
jne .divw_branch2
683
683
movq $UINT64_MAX, RS1
684
684
jmp .divw_branch3
@@ -983,7 +983,7 @@ ckb_vm_x64_execute:
983
983
xorq RS1, RS1
984
984
jmp .rem_branch3
985
985
.rem_branch1:
986
- cmp $0 , RS2r
986
+ test RS2r , RS2r
987
987
jne .rem_branch2
988
988
jmp .rem_branch3
989
989
.rem_branch2:
@@ -999,7 +999,7 @@ ckb_vm_x64_execute:
999
999
.CKB_VM_ASM_LABEL_OP_REMU:
1000
1000
DECODE_R
1001
1001
movq REGISTER_ADDRESS(RS2r), RS2r
1002
- cmp $0 , RS2r
1002
+ test RS2r , RS2r
1003
1003
jne .remu_branch2
1004
1004
movq REGISTER_ADDRESS(RS1), RS1
1005
1005
WRITE_RD(RS1)
@@ -1020,7 +1020,7 @@ ckb_vm_x64_execute:
1020
1020
DECODE_R
1021
1021
movq REGISTER_ADDRESS(RS2r), RS2r
1022
1022
mov RS2rd, RS2rd
1023
- cmp $0 , RS2r
1023
+ test RS2r , RS2r
1024
1024
jne .remuw_branch2
1025
1025
movq REGISTER_ADDRESS(RS1), RS1
1026
1026
movslq RS1d, RS1
@@ -1055,7 +1055,7 @@ ckb_vm_x64_execute:
1055
1055
xorq RS1, RS1
1056
1056
jmp .remw_branch3
1057
1057
.remw_branch1:
1058
- cmp $0 , RS2r
1058
+ test RS2r , RS2r
1059
1059
jne .remw_branch2
1060
1060
jmp .remw_branch3
1061
1061
.remw_branch2:
@@ -1696,7 +1696,7 @@ ckb_vm_x64_execute:
1696
1696
.CKB_VM_ASM_LABEL_OP_CLZ:
1697
1697
DECODE_R
1698
1698
movq REGISTER_ADDRESS(RS1), RS1
1699
- cmp $0 , RS1
1699
+ test RS1 , RS1
1700
1700
je .clz_branch
1701
1701
bsr RS1, RS1
1702
1702
neg RS1
@@ -1710,7 +1710,7 @@ ckb_vm_x64_execute:
1710
1710
.CKB_VM_ASM_LABEL_OP_CLZW:
1711
1711
DECODE_R
1712
1712
movq REGISTER_ADDRESS(RS1), RS1
1713
- cmp $0 , RS1d
1713
+ test RS1d , RS1d
1714
1714
je .clzw_branch
1715
1715
bsr RS1d, RS1d
1716
1716
neg RS1
@@ -1807,7 +1807,7 @@ ckb_vm_x64_execute:
1807
1807
.CKB_VM_ASM_LABEL_OP_CTZ:
1808
1808
DECODE_R
1809
1809
movq REGISTER_ADDRESS(RS1), RS1
1810
- cmp $0 , RS1
1810
+ test RS1 , RS1
1811
1811
je .ctz_branch
1812
1812
bsf RS1, RS1
1813
1813
WRITE_RD(RS1)
@@ -1819,7 +1819,7 @@ ckb_vm_x64_execute:
1819
1819
.CKB_VM_ASM_LABEL_OP_CTZW:
1820
1820
DECODE_R
1821
1821
movq REGISTER_ADDRESS(RS1), RS1
1822
- cmp $0 , RS1d
1822
+ test RS1d , RS1d
1823
1823
je .ctzw_branch
1824
1824
bsf RS1d, RS1d
1825
1825
WRITE_RD(RS1)
@@ -2221,7 +2221,7 @@ ckb_vm_x64_execute:
2221
2221
xorq TEMP1, TEMP1
2222
2222
jmp .wide_div_branch3
2223
2223
.wide_div_branch1:
2224
- cmp $0 , RS2r
2224
+ test RS2r , RS2r
2225
2225
jne .wide_div_branch2
2226
2226
movq RS1, TEMP1
2227
2227
movq $UINT64_MAX, RS1
@@ -2242,7 +2242,7 @@ ckb_vm_x64_execute:
2242
2242
DECODE_R4
2243
2243
movq REGISTER_ADDRESS(RS1), RS1
2244
2244
movq REGISTER_ADDRESS(RS2r), RS2r
2245
- cmp $0 , RS2r
2245
+ test RS2r , RS2r
2246
2246
jne .wide_divu_branch1
2247
2247
WRITE_RS3(RS1)
2248
2248
WRITE_RD_VALUE($UINT64_MAX, RS2r)
0 commit comments