mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 14:24:45 +00:00
TERRIBLE HACK to support x86 compilation
This commit is contained in:
parent
5488b3a3eb
commit
2294f6994f
5 changed files with 149 additions and 16 deletions
|
@ -444,17 +444,20 @@ impl<'ctx> RocUnion<'ctx> {
|
|||
data_layout.stack_size_and_alignment(layout_interner, env.target_info);
|
||||
|
||||
if payload_stack_size > 0 {
|
||||
let bytes_to_memcpy = env
|
||||
.context
|
||||
.i32_type()
|
||||
.const_int(payload_stack_size as _, false);
|
||||
let bytes_to_memcpy = payload_data_ptr
|
||||
.get_type()
|
||||
.get_element_type()
|
||||
.size_of()
|
||||
.unwrap();
|
||||
let align_bytes =
|
||||
data_layout.alignment_bytes_for_llvm(layout_interner, env.target_info);
|
||||
|
||||
env.builder
|
||||
.build_memcpy(
|
||||
cast_tag_pointer,
|
||||
self.data_align,
|
||||
payload_data_ptr,
|
||||
payload_align,
|
||||
align_bytes,
|
||||
bytes_to_memcpy
|
||||
)
|
||||
.unwrap_or_else(|e|internal_error!( "memcpy invariants must have been upheld: {e:?}. Union data align={}, source data align={}.", self.data_align, payload_align));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue