Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
defm LOAD_I64 : WebAssemblyLoad<I64, "i64.load", 0x29, []>; | defm LOAD_I64 : WebAssemblyLoad<I64, "i64.load", 0x29, []>; | ||||
defm LOAD_F32 : WebAssemblyLoad<F32, "f32.load", 0x2a, []>; | defm LOAD_F32 : WebAssemblyLoad<F32, "f32.load", 0x2a, []>; | ||||
defm LOAD_F64 : WebAssemblyLoad<F64, "f64.load", 0x2b, []>; | defm LOAD_F64 : WebAssemblyLoad<F64, "f64.load", 0x2b, []>; | ||||
// Select loads with no constant offset. | // Select loads with no constant offset. | ||||
multiclass LoadPatNoOffset<ValueType ty, PatFrag kind, string inst> { | multiclass LoadPatNoOffset<ValueType ty, PatFrag kind, string inst> { | ||||
def : Pat<(ty (kind I32:$addr)), (!cast<NI>(inst # "_A32") 0, 0, I32:$addr)>, | def : Pat<(ty (kind I32:$addr)), (!cast<NI>(inst # "_A32") 0, 0, I32:$addr)>, | ||||
Requires<[HasAddr32]>; | Requires<[HasAddr32]>; | ||||
def : Pat<(ty (kind I64:$addr)), (!cast<NI>(inst # "_A64") 0, 0, I64:$addr)>, | def : Pat<(ty (kind (i64 I64:$addr))), (!cast<NI>(inst # "_A64") 0, 0, I64:$addr)>, | ||||
Requires<[HasAddr64]>; | Requires<[HasAddr64]>; | ||||
} | } | ||||
defm : LoadPatNoOffset<i32, load, "LOAD_I32">; | defm : LoadPatNoOffset<i32, load, "LOAD_I32">; | ||||
defm : LoadPatNoOffset<i64, load, "LOAD_I64">; | defm : LoadPatNoOffset<i64, load, "LOAD_I64">; | ||||
defm : LoadPatNoOffset<f32, load, "LOAD_F32">; | defm : LoadPatNoOffset<f32, load, "LOAD_F32">; | ||||
defm : LoadPatNoOffset<f64, load, "LOAD_F64">; | defm : LoadPatNoOffset<f64, load, "LOAD_F64">; | ||||
▲ Show 20 Lines • Show All 307 Lines • Show Last 20 Lines |