From 119bf0615e0d6f96e5b3c79f1be83c5c41816cad Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Mon, 2 Feb 2015 22:29:44 +0000 Subject: [PATCH] lowlevel-z80: support the experimental entry optimisation --- Kernel/lowlevel-z80.s | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Kernel/lowlevel-z80.s b/Kernel/lowlevel-z80.s index c923d5eb..5037bbb9 100644 --- a/Kernel/lowlevel-z80.s +++ b/Kernel/lowlevel-z80.s @@ -546,3 +546,30 @@ numeral:add a, #0x30 ; start at '0' (0x30='0') .else .include "lowlevel-z80-cmos.s" .endif + +; +; These are needed by the experimental SDCC size optimisations +; + + .globl __enter, __enter_s + +__enter: + pop hl ; return address + push ix ; save frame pointer + ld ix, #0 + add ix, sp ; set ix to the stack frame + jp (hl) ; and return + +__enter_s: + pop hl ; return address + push ix ; save frame pointer + ld ix, #0 + add ix, sp ; frame pointer + ld e, (hl) ; size byte + ld d, #0xFF ; always minus something.. + inc hl + ex de, hl + add hl, sp + ld sp, hl + push de + ret -- 2.34.1