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:
@@ -2985,3 +2985,31 @@
|
||||
|
||||
(rule (lower (selectif_spectre_guard cc (ifcmp a b) x y))
|
||||
(select_icmp (emit_cmp cc a b) x y))
|
||||
|
||||
;; Rules for `fcvt_from_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(rule (lower (has_type $F32 (fcvt_from_sint a @ (value_type $I8))))
|
||||
(x64_cvtsi2ss $I32 (extend_to_gpr a $I32 (ExtendKind.Sign))))
|
||||
|
||||
(rule (lower (has_type $F32 (fcvt_from_sint a @ (value_type $I16))))
|
||||
(x64_cvtsi2ss $I32 (extend_to_gpr a $I32 (ExtendKind.Sign))))
|
||||
|
||||
(rule (lower (has_type $F32 (fcvt_from_sint a @ (value_type (ty_int (fits_in_64 ty))))))
|
||||
(x64_cvtsi2ss ty a))
|
||||
|
||||
(rule (lower (has_type $F64 (fcvt_from_sint a @ (value_type $I8))))
|
||||
(x64_cvtsi2sd $I32 (extend_to_gpr a $I32 (ExtendKind.Sign))))
|
||||
|
||||
(rule (lower (has_type $F64 (fcvt_from_sint a @ (value_type $I16))))
|
||||
(x64_cvtsi2sd $I32 (extend_to_gpr a $I32 (ExtendKind.Sign))))
|
||||
|
||||
(rule (lower (has_type $F64 (fcvt_from_sint a @ (value_type (ty_int (fits_in_64 ty))))))
|
||||
(x64_cvtsi2sd ty a))
|
||||
|
||||
(rule (lower (fcvt_from_sint a @ (value_type $I32X4)))
|
||||
(x64_cvtdq2ps a))
|
||||
|
||||
;; Rules for `fcvt_low_from_sint` ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(rule (lower (fcvt_low_from_sint a @ (value_type ty)))
|
||||
(x64_cvtdq2pd ty a))
|
||||
|
||||
Reference in New Issue
Block a user