| ... | @@ -2213,12 +2213,7 @@ static LLVMValueRef gen_resume(CodeGen *g, LLVMValueRef fn_val, LLVMValueRef tar | ... | @@ -2213,12 +2213,7 @@ static LLVMValueRef gen_resume(CodeGen *g, LLVMValueRef fn_val, LLVMValueRef tar |
| 2213 | LLVMTypeRef usize_type_ref = g->builtin_types.entry_usize->llvm_type; | 2213 | LLVMTypeRef usize_type_ref = g->builtin_types.entry_usize->llvm_type; |
| 2214 | if (fn_val == nullptr) { | 2214 | if (fn_val == nullptr) { |
| 2215 | LLVMValueRef fn_ptr_ptr = LLVMBuildStructGEP(g->builder, target_frame_ptr, coro_fn_ptr_index, ""); | 2215 | LLVMValueRef fn_ptr_ptr = LLVMBuildStructGEP(g->builder, target_frame_ptr, coro_fn_ptr_index, ""); |
| 2216 | LLVMValueRef fn_val_typed = LLVMBuildLoad(g->builder, fn_ptr_ptr, ""); | 2216 | fn_val = LLVMBuildLoad(g->builder, fn_ptr_ptr, ""); |
| 2217 | LLVMValueRef as_int = LLVMBuildPtrToInt(g->builder, fn_val_typed, usize_type_ref, ""); | | |
| 2218 | LLVMValueRef one = LLVMConstInt(usize_type_ref, 1, false); | | |
| 2219 | LLVMValueRef mask_val = LLVMConstNot(one); | | |
| 2220 | LLVMValueRef as_int_masked = LLVMBuildAnd(g->builder, as_int, mask_val, ""); | | |
| 2221 | fn_val = LLVMBuildIntToPtr(g->builder, as_int_masked, LLVMTypeOf(fn_val_typed), ""); | | |
| 2222 | } | 2217 | } |
| 2223 | if (arg_val == nullptr) { | 2218 | if (arg_val == nullptr) { |
| 2224 | arg_val = LLVMBuildSub(g->builder, LLVMConstAllOnes(usize_type_ref), | 2219 | arg_val = LLVMBuildSub(g->builder, LLVMConstAllOnes(usize_type_ref), |