File 0670-beam_load-Slightly-reduce-loader-code-size.patch of Package erlang

From 1a5265c964dc1eae5a7377a41de8ba7f40c270a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Sat, 4 Jan 2020 09:18:35 +0100
Subject: [PATCH 1/7] beam_load: Slightly reduce loader code size

Use CodeNeed(1) in a smarter place.
---
 erts/emulator/beam/beam_load.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c
index a57a44c421..3b4be5c36a 100644
--- a/erts/emulator/beam/beam_load.c
+++ b/erts/emulator/beam/beam_load.c
@@ -2716,36 +2716,30 @@ load_code(LoaderState* stp)
                 num_trailing_f = 0;
             }
 #endif
+            CodeNeed(1);
 	    switch (tmp_op->a[arg].type) {
 	    case TAG_i:
-		CodeNeed(1);
 		code[ci++] = make_small(tmp_op->a[arg].val);
 		break;
 	    case TAG_u:
 	    case TAG_a:
 	    case TAG_v:
-		CodeNeed(1);
 		code[ci++] = tmp_op->a[arg].val;
 		break;
 	    case TAG_f:
-		CodeNeed(1);
                 register_label_patch(stp, tmp_op->a[arg].val, ci, -last_instr_start);
 		ci++;
 		break;
 	    case TAG_x:
-		CodeNeed(1);
 		code[ci++] = make_loader_x_reg(tmp_op->a[arg].val);
 		break;
 	    case TAG_y:
-		CodeNeed(1);
 		code[ci++] = make_loader_y_reg(tmp_op->a[arg].val);
 		break;
 	    case TAG_n:
-		CodeNeed(1);
 		code[ci++] = NIL;
 		break;
 	    case TAG_q:
-		CodeNeed(1);
 		new_literal_patch(stp, ci);
 		code[ci++] = tmp_op->a[arg].val;
 		break;
-- 
2.16.4

openSUSE Build Service is sponsored by