From aa3030432862cf7694dc6b37c3fe8f8985741c86 Mon Sep 17 00:00:00 2001 From: Roy Frostig Date: Thu, 26 Aug 2010 18:55:47 -0700 Subject: [PATCH] Simplify null-writing from commit 8559a85ccacf70c51d93759b47a3880ae818b247 so as to avoid a branch. --- src/boot/me/trans.ml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml index d83f6c522be..39cfd0f4123 100644 --- a/src/boot/me/trans.ml +++ b/src/boot/me/trans.ml @@ -3264,6 +3264,7 @@ let trans_visitor get_element_ptr dst Abi.binding_field_bound_data in mov dst_item (Il.Cell src_item); + mov dst_binding zero; let null_jmp = null_check src_binding in (* Copy if we have a src binding. *) (* FIXME (issue #58): this is completely wrong, call @@ -3274,14 +3275,7 @@ let trans_visitor dst_binding (Ast.TY_box Ast.TY_int) src_binding (Ast.TY_box Ast.TY_int) curr_iso; - let end_jmp = mark() in - emit (Il.jmp Il.JMP Il.CodeNone); - patch null_jmp; - (* The src had a null binding, so make sure the dst - * does now too. - *) - mov dst_binding zero; - patch end_jmp + patch null_jmp end | _ ->