diff options
| author | Graydon Hoare <[email protected]> | 2010-08-24 11:42:24 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-08-24 11:42:24 -0700 |
| commit | b5255b4534856e25cd96b1041000837d65cc51a6 (patch) | |
| tree | 75e7d6674b2c2b4f5a900efabb33b994147339f6 /src/boot | |
| parent | Add lexer.reader to rustc for tracking position, char conversion, holding key... (diff) | |
| download | rust-b5255b4534856e25cd96b1041000837d65cc51a6.tar.xz rust-b5255b4534856e25cd96b1041000837d65cc51a6.zip | |
Shrink size of glue calls. Wins a few tens of kb on rustc.
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/me/trans.ml | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml index 03174b0a..e3587bdd 100644 --- a/src/boot/me/trans.ml +++ b/src/boot/me/trans.ml @@ -1798,8 +1798,6 @@ let trans_visitor (clo:Il.cell option) : unit = 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 do 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 dst); call_code code; - pop (); - pop (); - pop (); - Array.iter (fun _ -> pop()) args; + add_to (Il.Reg (abi.Abi.abi_sp_reg, word_sty)) + (imm (Int64.mul word_sz (Int64.of_int (3 + (Array.length args))))); in let cloptr = match clo with |