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