x64: Migrate fcvt_from_sint and fcvt_low_from_sint to ISLE (#4650)
https://github.com/bytecodealliance/wasmtime/pull/4650
This commit is contained in:
@@ -2970,6 +2970,13 @@
|
||||
(_ Unit (emit (MInst.XmmUnaryRmR (SseOpcode.Cvtsd2ss) x dst))))
|
||||
dst))
|
||||
|
||||
;; Helper for creating `cvtdq2ps` instructions.
|
||||
(decl x64_cvtdq2ps (Xmm) Xmm)
|
||||
(rule (x64_cvtdq2ps x)
|
||||
(let ((dst WritableXmm (temp_writable_xmm))
|
||||
(_ Unit (emit (MInst.XmmUnaryRmR (SseOpcode.Cvtdq2ps) x dst))))
|
||||
dst))
|
||||
|
||||
;; Helper for creating `cvtps2pd` instructions.
|
||||
(decl x64_cvtps2pd (Xmm) Xmm)
|
||||
(rule (x64_cvtps2pd x)
|
||||
@@ -2984,6 +2991,29 @@
|
||||
(_ Unit (emit (MInst.XmmUnaryRmR (SseOpcode.Cvtpd2ps) x dst))))
|
||||
dst))
|
||||
|
||||
;; Helper for creating `cvtdq2pd` instructions.
|
||||
(decl x64_cvtdq2pd (Type Xmm) Xmm)
|
||||
(rule (x64_cvtdq2pd ty x)
|
||||
(let ((dst WritableXmm (temp_writable_xmm))
|
||||
(_ Unit (emit (MInst.XmmUnaryRmR (SseOpcode.Cvtdq2pd) x dst))))
|
||||
dst))
|
||||
|
||||
;; Helper for creating `cvtsi2ss` instructions.
|
||||
(decl x64_cvtsi2ss (Type GprMem) Xmm)
|
||||
(rule (x64_cvtsi2ss ty x)
|
||||
(let ((dst WritableXmm (temp_writable_xmm))
|
||||
(size OperandSize (raw_operand_size_of_type ty))
|
||||
(_ Unit (emit (MInst.GprToXmm (SseOpcode.Cvtsi2ss) x dst size))))
|
||||
dst))
|
||||
|
||||
;; Helper for creating `cvtsi2sd` instructions.
|
||||
(decl x64_cvtsi2sd (Type GprMem) Xmm)
|
||||
(rule (x64_cvtsi2sd ty x)
|
||||
(let ((dst WritableXmm (temp_writable_xmm))
|
||||
(size OperandSize (raw_operand_size_of_type ty))
|
||||
(_ Unit (emit (MInst.GprToXmm (SseOpcode.Cvtsi2sd) x dst size))))
|
||||
dst))
|
||||
|
||||
;; Helpers for creating `pcmpeq*` instructions.
|
||||
(decl x64_pcmpeq (Type Xmm XmmMem) Xmm)
|
||||
(rule (x64_pcmpeq $I8X16 x y) (x64_pcmpeqb x y))
|
||||
|
||||
Reference in New Issue
Block a user