Shrink size of glue calls. Wins a few tens of kb on rustc.
This commit is contained in:
parent
07d355d1af
commit
b5255b4534
1 changed files with 2 additions and 6 deletions
|
@ -1798,8 +1798,6 @@ let trans_visitor
|
||||||
(clo:Il.cell option)
|
(clo:Il.cell option)
|
||||||
: unit =
|
: unit =
|
||||||
let inner dst cloptr =
|
let inner dst cloptr =
|
||||||
let scratch = next_vreg_cell Il.voidptr_t in
|
|
||||||
let pop _ = emit (Il.Pop scratch) in
|
|
||||||
for i = ((Array.length args) - 1) downto 0
|
for i = ((Array.length args) - 1) downto 0
|
||||||
do
|
do
|
||||||
emit (Il.Push (Il.Cell args.(i)))
|
emit (Il.Push (Il.Cell args.(i)))
|
||||||
|
@ -1808,10 +1806,8 @@ let trans_visitor
|
||||||
emit (Il.Push (Il.Cell abi.Abi.abi_tp_cell));
|
emit (Il.Push (Il.Cell abi.Abi.abi_tp_cell));
|
||||||
emit (Il.Push dst);
|
emit (Il.Push dst);
|
||||||
call_code code;
|
call_code code;
|
||||||
pop ();
|
add_to (Il.Reg (abi.Abi.abi_sp_reg, word_sty))
|
||||||
pop ();
|
(imm (Int64.mul word_sz (Int64.of_int (3 + (Array.length args)))));
|
||||||
pop ();
|
|
||||||
Array.iter (fun _ -> pop()) args;
|
|
||||||
in
|
in
|
||||||
let cloptr =
|
let cloptr =
|
||||||
match clo with
|
match clo with
|
||||||
|
|
Loading…
Reference in a new issue