-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
separate intel x64 definition for movd and movq. #47943
Comments
@sandreenko, there are actually two That is, there is and there is also the standalone |
Yeah, I have just found it, thanks @tannergooding , will update the issue. |
cc @dotnet/jit-contrib , would names |
I think we can simply keep it as just The difference in encoding is whether or not it contains the REX.W prefix, which is the standard way to switch from 32-bit to 64-bit registers on x86. So for
Other instructions where this "naming" split is shown include For the standalone
In terms of practical usage these should largely only appear when the user either explicitly uses them via hardware intrinsics or as a JIT optimization for certain scenarios. This means they are largely only useful for scenarios such as For xmm to xmm register moves we should likely be favoring That leaves the standalone |
Hm, I did not expect that Amd64 calls it movd, maybe then I will just add a comment about it to the places where I mentioned this issue.
another possibility to follow this splitting would be to use |
I think it might be better, long term, to just have |
based on the discussion it is not worth doing right now. |
Intel has 3 different encodings: 1.
movd
for xmm<->general reg/mem dword moves, 2.movq
for xmm <-> general reg/mem qword moved (x64 only), 3.movq
for xmm<->xmm/mem qword moves, but in the Jit we combine 1. and 2. and call themmovd
so our disasm shows incorrect instruction formovq
in that case.See the details in the @tannergooding comment below.
The fix is to separate 2. and 3., the hard part is to find names, maybe
movq_g
(general),movq_mm
?The text was updated successfully, but these errors were encountered: