picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit 19b745a8b337b51249448cc249210f5d6423f2d2
parent 5666c60c724d863f86a9038a488e925db2a8962e
Author: Alexander Burger <abu@software-lab.de>
Date:   Tue, 16 Oct 2012 09:51:26 +0200

emu64 continued
Diffstat:
Msrc64/Makefile | 6+++---
Msrc64/arch/emu.l | 17+++++++++--------
2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src64/Makefile b/src64/Makefile @@ -1,4 +1,4 @@ -# 12oct12abu +# 16oct12abu # (c) Software Lab. Alexander Burger .SILENT: @@ -48,7 +48,7 @@ ifeq ($(UNAME), Linux) AS = as -mppc64 -a64 endif endif - LD-MAIN = -rdynamic -lc -lm -ldl + LD-MAIN = -Wl,--no-as-needed -rdynamic -lc -lm -ldl LD-SHARED = -shared -export-dynamic STRIP = strip else @@ -89,7 +89,7 @@ emu: $(sFiles) picolisp: $(bin)/picolisp $(lib)/ext $(lib)/ht $(bin)/picolisp: $(ARCH)$(SYS).base.o - $(CC) -o $(bin)/picolisp $(ARCH)$(SYS).base.o -Wl,--no-as-needed $(LD-MAIN) + $(CC) -o $(bin)/picolisp $(ARCH)$(SYS).base.o $(LD-MAIN) $(STRIP) $(bin)/picolisp $(lib)/ext: $(ARCH)$(SYS).ext.o diff --git a/src64/arch/emu.l b/src64/arch/emu.l @@ -73,7 +73,7 @@ (cons (cadr @) "Data+@1") ) ((absCode X) (if *FPic - () + (cons @ (pack "(" *Label "+@1)")) (cons @ "(Code+@1)") ) ) ((and *FPic (assoc X *BaseCode)) (cons @ "(Code+@1)") ) @@ -1027,7 +1027,10 @@ "extern void div2(uint64_t);" "extern void begin(int,int,int,int,int,int,int);" "extern void *argv(int,ptr);" - "extern void retv(int,ptr);" ) + "extern void retv(int,ptr);" + "extern uint16_t Code[];" + NIL + "op Local[] = {" ) (quote "uint16_t *PC;" "uint8_t *Stack;" @@ -1128,12 +1131,10 @@ " while (--i >= 0)" " p[i].n = (uint64_t)(unsigned long)((uint8_t**)p)[i];" "}" - NIL ) ) ) - (mapc prinl - (quote - "uint16_t Code[];" - NIL - "op Data[] = {" ) ) + NIL + "uint16_t Code[];" + NIL + "op Data[] = {" ) ) ) (setq *AsmData (flip *AsmData) *AsmCode (flip *AsmCode) )