猿问

无用的测试指令?

作为Java程序的JIT编译的结果,我得到了以下程序集列表。


mov    0x14(%rsp),%r10d

inc    %r10d              


mov    0x1c(%rsp),%r8d

inc    %r8d               


test   %eax,(%r11)         ; <--- this instruction


mov    (%rsp),%r9

mov    0x40(%rsp),%r14d

mov    0x18(%rsp),%r11d

mov    %ebp,%r13d

mov    0x8(%rsp),%rbx

mov    0x20(%rsp),%rbp

mov    0x10(%rsp),%ecx

mov    0x28(%rsp),%rax    


movzbl 0x18(%r9),%edi     

movslq %r8d,%rsi          


cmp    0x30(%rsp),%rsi

jge    0x00007fd3d27c4f17 

我对test指令的理解在这里是没有用的,因为测试的主要思想是


标记SF,ZF,PF被修改,而AND的结果被丢弃。


在这里,我们不使用这些结果标志。


是JIT中的错误还是我错过了什么?如果是,最好的报告地点在哪里?谢谢!


月关宝盒
浏览 176回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答