x64: remove Inst::XmmLoadConst (#4876)
This is a cherry-pick of a long-ago commit, 2d46637. The original message reads: > Now that `SyntheticAmode` can refer to constants, there is no longer a > need for a separate instruction format--standard load instructions will > work. Since then, the transition to ISLE and the use of `XmmLoadConst` in many more places makes this change a larger diff than the original. The basic idea is the same, though: the extra indirection of `Inst::XMmLoadConst` is removed and replaced by a direct use of `VCodeConstant` as a `SyntheticAmode`. This has no effect on codegen, but the CLIF output is now clearer in that the actual instruction is displayed (e.g., `movdqu`) instead of a made-up instruction (`load_const`).
This commit is contained in:
@@ -15,11 +15,11 @@ block0:
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_const VCodeConstant(3), %xmm0
|
||||
; load_const VCodeConstant(2), %xmm5
|
||||
; load_const VCodeConstant(0), %xmm3
|
||||
; movdqu const(3), %xmm0
|
||||
; movdqu const(2), %xmm5
|
||||
; movdqu const(0), %xmm3
|
||||
; pshufb %xmm0, %xmm3, %xmm0
|
||||
; load_const VCodeConstant(1), %xmm7
|
||||
; movdqu const(1), %xmm7
|
||||
; pshufb %xmm5, %xmm7, %xmm5
|
||||
; por %xmm0, %xmm5, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
@@ -36,8 +36,8 @@ block0:
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_const VCodeConstant(1), %xmm0
|
||||
; load_const VCodeConstant(0), %xmm2
|
||||
; movdqu const(1), %xmm0
|
||||
; movdqu const(0), %xmm2
|
||||
; pshufb %xmm0, %xmm2, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
; popq %rbp
|
||||
@@ -54,9 +54,9 @@ block0:
|
||||
; pushq %rbp
|
||||
; movq %rsp, %rbp
|
||||
; block0:
|
||||
; load_const VCodeConstant(1), %xmm0
|
||||
; load_const VCodeConstant(1), %xmm3
|
||||
; load_const VCodeConstant(0), %xmm4
|
||||
; movdqu const(1), %xmm0
|
||||
; movdqu const(1), %xmm3
|
||||
; movdqu const(0), %xmm4
|
||||
; paddusb %xmm3, %xmm4, %xmm3
|
||||
; pshufb %xmm0, %xmm3, %xmm0
|
||||
; movq %rbp, %rsp
|
||||
|
||||
Reference in New Issue
Block a user