193193 shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
194194 movq TEMP1, CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_LAST_READ_FRAME(MACHINE); \
195195 movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), TEMP2d; \
196- cmp $0 , TEMP2d; \
196+ test TEMP2d , TEMP2d; \
197197 jne 1f; \
198198 movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
199199 PREPCALL; \
207207 subq $1 , TEMP1; \
208208 shr $CKB_VM_ASM_MEMORY_FRAME_SHIFTS, TEMP1; \
209209 movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), TEMP2d; \
210- cmp $0 , TEMP2d; \
210+ test TEMP2d , TEMP2d; \
211211 jne 2f; \
212212 movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1);\
213213 PREPCALL; \
283283 movq TEMP1, TEMP2; \
284284 shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
285285 movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), temp_regd; \
286- cmp $0 , temp_regd; \
286+ test temp_regd , temp_regd; \
287287 jne 1f; \
288288 movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
289289 PREPCALL; \
312312 movb TEMP2b, CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FLAGS(MACHINE, TEMP1); \
313313 shr $CKB_VM_ASM_MEMORY_FRAME_PAGE_SHIFTS, TEMP1; \
314314 movzbl CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1), temp_regd; \
315- cmp $0 , temp_regd; \
315+ test temp_regd , temp_regd; \
316316 jne 2f; \
317317 movb $1 , CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_FRAMES(MACHINE, TEMP1); \
318318 PREPCALL; \
@@ -441,7 +441,7 @@ ckb_vm_x64_execute:
441441 cmp %rcx , %rdx
442442 jne .exit_trace
443443 movzbl CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
444- cmp $0 , %rdx
444+ test %rdx , %rdx
445445 je .exit_trace
446446 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
447447 addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -462,7 +462,7 @@ ckb_vm_x64_execute:
462462.p2align 3
463463.prepare_trace:
464464 movzbl 0 (PAUSE ), %eax
465- cmp $0 , %rax
465+ test %rax , %rax
466466 jnz .exit_pause
467467 LOAD_PC(%rax , %eax , %rcx , %ecx , TEMP3d)
468468 shr $2 , %eax
@@ -473,7 +473,7 @@ ckb_vm_x64_execute:
473473 cmp %rcx , %rdx
474474 jne .exit_trace
475475 movzbl CKB_VM_ASM_TRACE_OFFSET_LENGTH(TRACE), %edx
476- cmp $0 , %rdx
476+ test %rdx , %rdx
477477 je .exit_trace
478478 movq CKB_VM_ASM_ASM_CORE_MACHINE_OFFSET_CYCLES(MACHINE), %rax
479479 addq CKB_VM_ASM_TRACE_OFFSET_CYCLES(TRACE), %rax
@@ -609,7 +609,7 @@ ckb_vm_x64_execute:
609609 jne .div_branch1
610610 jmp .div_branch3
611611.div_branch1:
612- cmp $0 , RS2r
612+ test RS2r , RS2r
613613 jne .div_branch2
614614 movq $UINT64_MAX, RS1
615615 jmp .div_branch3
@@ -626,7 +626,7 @@ ckb_vm_x64_execute:
626626.CKB_VM_ASM_LABEL_OP_DIVU:
627627 DECODE_R
628628 movq REGISTER_ADDRESS(RS2r), RS2r
629- cmp $0 , RS2r
629+ test RS2r , RS2r
630630 jne .divu_branch1
631631 WRITE_RD_VALUE($UINT64_MAX, RS2r)
632632 NEXT_INST
@@ -646,7 +646,7 @@ ckb_vm_x64_execute:
646646 DECODE_R
647647 movq REGISTER_ADDRESS(RS2r), RS2r
648648 mov RS2rd, RS2rd
649- cmp $0 , RS2r
649+ test RS2r , RS2r
650650 jne .divuw_branch1
651651 WRITE_RD_VALUE($UINT64_MAX, RS2r)
652652 NEXT_INST
@@ -678,7 +678,7 @@ ckb_vm_x64_execute:
678678 jne .divw_branch1
679679 jmp .divw_branch3
680680.divw_branch1:
681- cmp $0 , RS2r
681+ test RS2r , RS2r
682682 jne .divw_branch2
683683 movq $UINT64_MAX, RS1
684684 jmp .divw_branch3
@@ -983,7 +983,7 @@ ckb_vm_x64_execute:
983983 xorq RS1, RS1
984984 jmp .rem_branch3
985985.rem_branch1:
986- cmp $0 , RS2r
986+ test RS2r , RS2r
987987 jne .rem_branch2
988988 jmp .rem_branch3
989989.rem_branch2:
@@ -999,7 +999,7 @@ ckb_vm_x64_execute:
999999.CKB_VM_ASM_LABEL_OP_REMU:
10001000 DECODE_R
10011001 movq REGISTER_ADDRESS(RS2r), RS2r
1002- cmp $0 , RS2r
1002+ test RS2r , RS2r
10031003 jne .remu_branch2
10041004 movq REGISTER_ADDRESS(RS1), RS1
10051005 WRITE_RD(RS1)
@@ -1020,7 +1020,7 @@ ckb_vm_x64_execute:
10201020 DECODE_R
10211021 movq REGISTER_ADDRESS(RS2r), RS2r
10221022 mov RS2rd, RS2rd
1023- cmp $0 , RS2r
1023+ test RS2r , RS2r
10241024 jne .remuw_branch2
10251025 movq REGISTER_ADDRESS(RS1), RS1
10261026 movslq RS1d, RS1
@@ -1055,7 +1055,7 @@ ckb_vm_x64_execute:
10551055 xorq RS1, RS1
10561056 jmp .remw_branch3
10571057.remw_branch1:
1058- cmp $0 , RS2r
1058+ test RS2r , RS2r
10591059 jne .remw_branch2
10601060 jmp .remw_branch3
10611061.remw_branch2:
@@ -1696,7 +1696,7 @@ ckb_vm_x64_execute:
16961696.CKB_VM_ASM_LABEL_OP_CLZ:
16971697 DECODE_R
16981698 movq REGISTER_ADDRESS(RS1), RS1
1699- cmp $0 , RS1
1699+ test RS1 , RS1
17001700 je .clz_branch
17011701 bsr RS1, RS1
17021702 neg RS1
@@ -1710,7 +1710,7 @@ ckb_vm_x64_execute:
17101710.CKB_VM_ASM_LABEL_OP_CLZW:
17111711 DECODE_R
17121712 movq REGISTER_ADDRESS(RS1), RS1
1713- cmp $0 , RS1d
1713+ test RS1d , RS1d
17141714 je .clzw_branch
17151715 bsr RS1d, RS1d
17161716 neg RS1
@@ -1807,7 +1807,7 @@ ckb_vm_x64_execute:
18071807.CKB_VM_ASM_LABEL_OP_CTZ:
18081808 DECODE_R
18091809 movq REGISTER_ADDRESS(RS1), RS1
1810- cmp $0 , RS1
1810+ test RS1 , RS1
18111811 je .ctz_branch
18121812 bsf RS1, RS1
18131813 WRITE_RD(RS1)
@@ -1819,7 +1819,7 @@ ckb_vm_x64_execute:
18191819.CKB_VM_ASM_LABEL_OP_CTZW:
18201820 DECODE_R
18211821 movq REGISTER_ADDRESS(RS1), RS1
1822- cmp $0 , RS1d
1822+ test RS1d , RS1d
18231823 je .ctzw_branch
18241824 bsf RS1d, RS1d
18251825 WRITE_RD(RS1)
@@ -2221,7 +2221,7 @@ ckb_vm_x64_execute:
22212221 xorq TEMP1, TEMP1
22222222 jmp .wide_div_branch3
22232223.wide_div_branch1:
2224- cmp $0 , RS2r
2224+ test RS2r , RS2r
22252225 jne .wide_div_branch2
22262226 movq RS1, TEMP1
22272227 movq $UINT64_MAX, RS1
@@ -2242,7 +2242,7 @@ ckb_vm_x64_execute:
22422242 DECODE_R4
22432243 movq REGISTER_ADDRESS(RS1), RS1
22442244 movq REGISTER_ADDRESS(RS2r), RS2r
2245- cmp $0 , RS2r
2245+ test RS2r , RS2r
22462246 jne .wide_divu_branch1
22472247 WRITE_RS3(RS1)
22482248 WRITE_RD_VALUE($UINT64_MAX, RS2r)
0 commit comments