;; GENERATED BY `isaspec`. DO NOT EDIT!!!
(attr MInst.AluRRRR (tag isaspec_generated))
(spec
(MInst.AluRRRR alu_op size rd rn rm ra)
(provide
(match
size
((Size64) (match alu_op ((MAdd) (= rd (bvadd ra (bvmul rn rm)))) ((MSub) (= rd (bvsub ra (bvmul rn rm))))))
((Size32)
(match
alu_op
((MAdd) (= rd (zero_ext 64 (bvadd (extract 31 0 ra) (bvmul (extract 31 0 rn) (extract 31 0 rm))))))
((MSub) (= rd (zero_ext 64 (bvsub (extract 31 0 ra) (bvmul (extract 31 0 rn) (extract 31 0 rm))))))
((UMAddL) (= rd (bvadd ra (bvmul (zero_ext 64 (extract 31 0 rn)) (zero_ext 64 (extract 31 0 rm))))))
((SMAddL) (= rd (bvadd ra (bvmul (sign_ext 64 (extract 31 0 rn)) (sign_ext 64 (extract 31 0 rm))))))
)
)
)
)
(require
(match
size
((Size64) (match alu_op ((MAdd) true) ((MSub) true)))
((Size32) (match alu_op ((MAdd) true) ((MSub) true) ((UMAddL) true) ((SMAddL) true)))
)
)
)