Cranelift: don't emit inside lowering rules for aarch64 (#4572)
* Cranelift: Don't `emit` inside lowering rules in aarch64 The lowering rules should be "pure" and side-effect free, using helpers defined in `inst.isle` to perform actual side effects like emitting instructions. * Cranelift: use 80 width for section separators in aarch64 lowering rules
This commit is contained in:
@@ -1905,6 +1905,16 @@
|
||||
(decl uqxtn2 (Reg Reg ScalarSize) Reg)
|
||||
(rule (uqxtn2 x y size) (vec_rr_narrow_high (VecRRNarrowOp.Uqxtn) x y size))
|
||||
|
||||
;; Helper for generating `fence` instructions.
|
||||
(decl aarch64_fence () SideEffectNoResult)
|
||||
(rule (aarch64_fence)
|
||||
(SideEffectNoResult.Inst (MInst.Fence)))
|
||||
|
||||
;; Helper for generating `brk` instructions.
|
||||
(decl brk () SideEffectNoResult)
|
||||
(rule (brk)
|
||||
(SideEffectNoResult.Inst (MInst.Brk)))
|
||||
|
||||
;; Helper for generating `addp` instructions.
|
||||
(decl addp (Reg Reg VectorSize) Reg)
|
||||
(rule (addp x y size) (vec_rrr (VecALUOp.Addp) x y size))
|
||||
|
||||
Reference in New Issue
Block a user