MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / dynamic_stack_slot

Function dynamic_stack_slot

cranelift/codegen/src/ir/stackslot.rs:213–250  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

211
212 #[test]
213 fn dynamic_stack_slot() {
214 let mut func = Function::new();
215
216 let int_vector_ty = I32X4;
217 let fp_vector_ty = F64X2;
218 let scale0 = GlobalValueData::DynScaleTargetConst {
219 vector_type: int_vector_ty,
220 };
221 let scale1 = GlobalValueData::DynScaleTargetConst {
222 vector_type: fp_vector_ty,
223 };
224 let gv0 = func.create_global_value(scale0);
225 let gv1 = func.create_global_value(scale1);
226 let dtd0 = DynamicTypeData::new(int_vector_ty, gv0);
227 let dtd1 = DynamicTypeData::new(fp_vector_ty, gv1);
228 let dt0 = func.dfg.make_dynamic_ty(dtd0);
229 let dt1 = func.dfg.make_dynamic_ty(dtd1);
230
231 let dss0 = func.create_dynamic_stack_slot(DynamicStackSlotData::new(
232 StackSlotKind::ExplicitDynamicSlot,
233 dt0,
234 ));
235 let dss1 = func.create_dynamic_stack_slot(DynamicStackSlotData::new(
236 StackSlotKind::ExplicitDynamicSlot,
237 dt1,
238 ));
239 assert_eq!(dss0.to_string(), "dss0");
240 assert_eq!(dss1.to_string(), "dss1");
241
242 assert_eq!(
243 func.dynamic_stack_slots[dss0].to_string(),
244 "explicit_dynamic_slot dt0"
245 );
246 assert_eq!(
247 func.dynamic_stack_slots[dss1].to_string(),
248 "explicit_dynamic_slot dt1"
249 );
250 }
251}

Callers

nothing calls this directly

Calls 4

make_dynamic_tyMethod · 0.80
newFunction · 0.50
create_global_valueMethod · 0.45

Tested by

no test coverage detected