194194 movq TEMP1, CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_READ_FRAME(MACHINE); \
195195 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES_PTR(MACHINE), TEMP3; \
196196 movzbl (TEMP3, TEMP1), TEMP2d; \
197- cmp $0 , TEMP2d; \
197+ test TEMP2d , TEMP2d; \
198198 jne 1f; \
199199 movb $1 , (TEMP3, TEMP1); \
200200 PREPCALL; \
209209 shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
210210 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES_PTR(MACHINE), TEMP3; \
211211 movzbl (TEMP3, TEMP1), TEMP2d; \
212- cmp $0 , TEMP2d; \
212+ test TEMP2d , TEMP2d; \
213213 jne 2f; \
214214 movb $1 , (TEMP3, TEMP1);\
215215 PREPCALL; \
288288 shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
289289 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES_PTR(MACHINE), TEMP3; \
290290 movzbl (TEMP3, TEMP1), temp_regd; \
291- cmp $0 , temp_regd; \
291+ test temp_regd , temp_regd; \
292292 jne 1f; \
293293 movb $1 , (TEMP3, TEMP1); \
294294 PREPCALL; \
319319 shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
320320 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES_PTR(MACHINE), TEMP3; \
321321 movzbl (TEMP3, TEMP1), temp_regd; \
322- cmp $0 , temp_regd; \
322+ test temp_regd , temp_regd; \
323323 jne 2f; \
324324 movb $1 , (TEMP3, TEMP1); \
325325 PREPCALL; \
@@ -443,7 +443,7 @@ ckb_vm_x64_execute:
443443 cmp %rcx , %rdx
444444 jne .exit_trace
445445 mov CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
446- cmp $0 , %rdx
446+ test %rdx , %rdx
447447 je .exit_trace
448448 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
449449 addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -485,7 +485,7 @@ ckb_vm_x64_execute:
485485.prepare_trace:
486486 movq CKB_VM_ASM_INVOKE_DATA_OFFSET_PAUSE(INVOKE_DATA), %rax
487487 movzbl 0 (%rax ), %eax
488- cmp $0 , %rax
488+ test %rax , %rax
489489 jnz .exit_pause
490490 LOAD_PC(%rax , %eax , %rcx , %ecx , TEMP3d)
491491 shr $2 , %eax
@@ -497,7 +497,7 @@ ckb_vm_x64_execute:
497497 cmp %rcx , %rdx
498498 jne .exit_trace
499499 mov CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
500- cmp $0 , %rdx
500+ test %rdx , %rdx
501501 je .exit_trace
502502 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
503503 addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -634,7 +634,7 @@ ckb_vm_x64_execute:
634634 jne .div_branch1
635635 jmp .div_branch3
636636.div_branch1:
637- cmp $0 , RS2r
637+ test RS2r , RS2r
638638 jne .div_branch2
639639 movq $UINT64_MAX, RS1
640640 jmp .div_branch3
@@ -651,7 +651,7 @@ ckb_vm_x64_execute:
651651.CKB_VM_ASM_LABEL_OP_DIVU:
652652 DECODE_R
653653 movq REGISTER_ADDRESS(RS2r), RS2r
654- cmp $0 , RS2r
654+ test RS2r , RS2r
655655 jne .divu_branch1
656656 WRITE_RD_VALUE($UINT64_MAX, RS2r)
657657 NEXT_INST
@@ -671,7 +671,7 @@ ckb_vm_x64_execute:
671671 DECODE_R
672672 movq REGISTER_ADDRESS(RS2r), RS2r
673673 mov RS2rd, RS2rd
674- cmp $0 , RS2r
674+ test RS2r , RS2r
675675 jne .divuw_branch1
676676 WRITE_RD_VALUE($UINT64_MAX, RS2r)
677677 NEXT_INST
@@ -703,7 +703,7 @@ ckb_vm_x64_execute:
703703 jne .divw_branch1
704704 jmp .divw_branch3
705705.divw_branch1:
706- cmp $0 , RS2r
706+ test RS2r , RS2r
707707 jne .divw_branch2
708708 movq $UINT64_MAX, RS1
709709 jmp .divw_branch3
@@ -1022,7 +1022,7 @@ ckb_vm_x64_execute:
10221022 xorq RS1, RS1
10231023 jmp .rem_branch3
10241024.rem_branch1:
1025- cmp $0 , RS2r
1025+ test RS2r , RS2r
10261026 jne .rem_branch2
10271027 jmp .rem_branch3
10281028.rem_branch2:
@@ -1038,7 +1038,7 @@ ckb_vm_x64_execute:
10381038.CKB_VM_ASM_LABEL_OP_REMU:
10391039 DECODE_R
10401040 movq REGISTER_ADDRESS(RS2r), RS2r
1041- cmp $0 , RS2r
1041+ test RS2r , RS2r
10421042 jne .remu_branch2
10431043 movq REGISTER_ADDRESS(RS1), RS1
10441044 WRITE_RD(RS1)
@@ -1059,7 +1059,7 @@ ckb_vm_x64_execute:
10591059 DECODE_R
10601060 movq REGISTER_ADDRESS(RS2r), RS2r
10611061 mov RS2rd, RS2rd
1062- cmp $0 , RS2r
1062+ test RS2r , RS2r
10631063 jne .remuw_branch2
10641064 movq REGISTER_ADDRESS(RS1), RS1
10651065 movslq RS1d, RS1
@@ -1094,7 +1094,7 @@ ckb_vm_x64_execute:
10941094 xorq RS1, RS1
10951095 jmp .remw_branch3
10961096.remw_branch1:
1097- cmp $0 , RS2r
1097+ test RS2r , RS2r
10981098 jne .remw_branch2
10991099 jmp .remw_branch3
11001100.remw_branch2:
@@ -1761,7 +1761,7 @@ ckb_vm_x64_execute:
17611761.CKB_VM_ASM_LABEL_OP_CLZ:
17621762 DECODE_R
17631763 movq REGISTER_ADDRESS(RS1), RS1
1764- cmp $0 , RS1
1764+ test RS1 , RS1
17651765 je .clz_branch
17661766 bsr RS1, RS1
17671767 neg RS1
@@ -1775,7 +1775,7 @@ ckb_vm_x64_execute:
17751775.CKB_VM_ASM_LABEL_OP_CLZW:
17761776 DECODE_R
17771777 movq REGISTER_ADDRESS(RS1), RS1
1778- cmp $0 , RS1d
1778+ test RS1d , RS1d
17791779 je .clzw_branch
17801780 bsr RS1d, RS1d
17811781 neg RS1
@@ -1872,7 +1872,7 @@ ckb_vm_x64_execute:
18721872.CKB_VM_ASM_LABEL_OP_CTZ:
18731873 DECODE_R
18741874 movq REGISTER_ADDRESS(RS1), RS1
1875- cmp $0 , RS1
1875+ test RS1 , RS1
18761876 je .ctz_branch
18771877 bsf RS1, RS1
18781878 WRITE_RD(RS1)
@@ -1884,7 +1884,7 @@ ckb_vm_x64_execute:
18841884.CKB_VM_ASM_LABEL_OP_CTZW:
18851885 DECODE_R
18861886 movq REGISTER_ADDRESS(RS1), RS1
1887- cmp $0 , RS1d
1887+ test RS1d , RS1d
18881888 je .ctzw_branch
18891889 bsf RS1d, RS1d
18901890 WRITE_RD(RS1)
@@ -2286,7 +2286,7 @@ ckb_vm_x64_execute:
22862286 xorq TEMP1, TEMP1
22872287 jmp .wide_div_branch3
22882288.wide_div_branch1:
2289- cmp $0 , RS2r
2289+ test RS2r , RS2r
22902290 jne .wide_div_branch2
22912291 movq RS1, TEMP1
22922292 movq $UINT64_MAX, RS1
@@ -2307,7 +2307,7 @@ ckb_vm_x64_execute:
23072307 DECODE_R4
23082308 movq REGISTER_ADDRESS(RS1), RS1
23092309 movq REGISTER_ADDRESS(RS2r), RS2r
2310- cmp $0 , RS2r
2310+ test RS2r , RS2r
23112311 jne .wide_divu_branch1
23122312 WRITE_RS3(RS1)
23132313 WRITE_RD_VALUE($UINT64_MAX, RS2r)
0 commit comments