Remove hacks in the ops emission

This commit is contained in:
Andrzej Janik
2020-05-15 23:05:59 +02:00
parent 531cefce36
commit 76afdc1081

View File

@ -247,7 +247,7 @@ fn emit_function_body_ops(
builder, builder,
SpirvType::Pointer(data.typ, spirv::StorageClass::CrossWorkgroup), SpirvType::Pointer(data.typ, spirv::StorageClass::CrossWorkgroup),
); );
let bitcast = builder.convert_u_to_ptr(ptr_result_type, None, src - 5)?; let bitcast = builder.convert_u_to_ptr(ptr_result_type, None, src)?;
builder.load( builder.load(
result_type, result_type,
Some(arg.dst + id_offset), Some(arg.dst + id_offset),
@ -257,7 +257,7 @@ fn emit_function_body_ops(
)?; )?;
} }
ast::LdStateSpace::Param => { ast::LdStateSpace::Param => {
//builder.copy_object(result_type, Some(arg.dst + id_offset), src)?; builder.copy_object(result_type, Some(arg.dst + id_offset), src)?;
} }
_ => todo!(), _ => todo!(),
} }
@ -279,7 +279,7 @@ fn emit_function_body_ops(
SpirvType::Pointer(data.typ, spirv::StorageClass::CrossWorkgroup), SpirvType::Pointer(data.typ, spirv::StorageClass::CrossWorkgroup),
); );
let bitcast = let bitcast =
builder.convert_u_to_ptr(ptr_result_type, None, arg.dst + id_offset - 5)?; builder.convert_u_to_ptr(ptr_result_type, None, arg.dst + id_offset)?;
builder.store(bitcast, src, None, &[])?; builder.store(bitcast, src, None, &[])?;
} }
// SPIR-V does not support ret as guaranteed-converged // SPIR-V does not support ret as guaranteed-converged