@@ -163,18 +163,18 @@ include "WebAssemblyInstrFormats.td"
163
163
// Additional instructions.
164
164
//===----------------------------------------------------------------------===//
165
165
166
- multiclass ARGUMENT<WebAssemblyRegClass vt> {
166
+ multiclass ARGUMENT<WebAssemblyRegClass reg, ValueType vt> {
167
167
let hasSideEffects = 1, isCodeGenOnly = 1,
168
168
Defs = []<Register>, Uses = [ARGUMENTS] in
169
- defm ARGUMENT_#vt : I<(outs vt:$res), (ins i32imm:$argno),
170
- (outs), (ins i32imm:$argno),
171
- [(set vt :$res, (WebAssemblyargument timm:$argno))]>;
169
+ defm ARGUMENT_#vt :
170
+ I<(outs reg:$res), (ins i32imm:$argno), (outs), (ins i32imm:$argno),
171
+ [(set (vt reg :$res) , (WebAssemblyargument timm:$argno))]>;
172
172
}
173
- defm "": ARGUMENT<I32>;
174
- defm "": ARGUMENT<I64>;
175
- defm "": ARGUMENT<F32>;
176
- defm "": ARGUMENT<F64>;
177
- defm "": ARGUMENT<EXCEPT_REF>;
173
+ defm "": ARGUMENT<I32, i32 >;
174
+ defm "": ARGUMENT<I64, i64 >;
175
+ defm "": ARGUMENT<F32, f32 >;
176
+ defm "": ARGUMENT<F64, f64 >;
177
+ defm "": ARGUMENT<EXCEPT_REF, ExceptRef >;
178
178
179
179
// get_local and set_local are not generated by instruction selection; they
180
180
// are implied by virtual register uses and defs.
0 commit comments