mirror of
https://github.com/Interlisp/maiko.git
synced 2026-01-26 03:51:32 +00:00
Remove assembly fn call optimizations. (#276)
These were for old platforms and not used in recent history. There's no NOASMFNCALL flag as there's no more asm fn call code.
This commit is contained in:
1196
src/dsp386.il
1196
src/dsp386.il
File diff suppressed because it is too large
Load Diff
150
src/dspSPARC.il
150
src/dspSPARC.il
@@ -410,156 +410,6 @@ _xwzq6:
|
||||
movw a0@(0,d1:l:1),d0
|
||||
.end
|
||||
|
||||
|
||||
|
||||
|
||||
.inline _opreturn,0
|
||||
|
||||
movl _CurrentFX,a1 |returnFX = a1
|
||||
movl #65536,d0
|
||||
movw a1@(2),d0 |returnFX->alink
|
||||
lsrl #1,d0 |low bit to carry
|
||||
jcs ni |jump if slow return
|
||||
movl a2,a3 |CSTKPTR = IVAR
|
||||
movl _Lisp_world,a0 |PVar=
|
||||
lea a0@(0,d0:l:4),a0
|
||||
movl a0,_PVar
|
||||
moveq #20,d1
|
||||
subl d1,a0 |returnFX = a0
|
||||
movl a0,_CurrentFX |CURRENTFX = returnFX
|
||||
movl #65536,d0
|
||||
movw a0@(-2),d0 |returnFX -1
|
||||
movl _Lisp_world,a1
|
||||
lea a1@(0,d0:l:2),a2 |IVAR = a2
|
||||
moveq #0,d0
|
||||
movb a0@(7),d0 |returnFX->hi2fnheader
|
||||
swap d0
|
||||
movw a0@(4),d0 |returnFX->lofnheader
|
||||
movl _Lisp_world,a1
|
||||
lea a1@(0,d0:l:2),a1
|
||||
movl a1,_FuncObj |FuncObj = a1
|
||||
subl a5,a5
|
||||
movw a0@(10),a5 |returnFX->pc a5
|
||||
lea a1@(0,a5:l:1),a5 | a5 + FuncObj
|
||||
movb a5@,d6
|
||||
movl a4@(0,d6:l:4),a0
|
||||
jmp a0@
|
||||
|
||||
|
||||
.end
|
||||
|
||||
|
||||
|
||||
.inline _fn3,0
|
||||
|
||||
moveq #0,d0
|
||||
movw a5@(1),d0
|
||||
movl _Defspace,a0
|
||||
lea a0@(0,d0:l:4),a1 |defcell = a1
|
||||
movl a1,d4 |save defcell in d4
|
||||
| movl a1,a6@(-20)
|
||||
btst #7,a1@
|
||||
jeq ni
|
||||
movl a1@,d0 |defcell->defpointer
|
||||
andl #16777215,d0
|
||||
movl _Lisp_world,a0
|
||||
lea a0@(0,d0:l:2),a1 |LOCFNCELL
|
||||
movl a1,d2 |save LOCFNCELL in a1, d2
|
||||
| movl a1,a6@(-12)
|
||||
moveq #0,d0
|
||||
movw a1@,d0 |LOCFNCELL->stkmin
|
||||
lea a3@(4,d0:l:2),a0
|
||||
| addql #4,a0
|
||||
cmpl _StkLimO,a0
|
||||
jcc ni |stack overflow
|
||||
lea a3@(-8),a1 |CSTKPTR-(x<<1)+2
|
||||
subl _Lisp_world,a1
|
||||
movl a1,d3
|
||||
lsrl #1,d3
|
||||
| movl d3,a1
|
||||
andl #65535,d3 |NEXTBLOCK = d3
|
||||
| movl d0,d3
|
||||
movl _CurrentFX,a1 |a1 = _CurrentFX
|
||||
movw d3,a1@(8) |CURRENTFX->nextblock =
|
||||
movl d3,d0
|
||||
orl #65536,d0
|
||||
movl _Lisp_world,a0
|
||||
lea a0@(0,d0:l:2),a2 |IVAR =
|
||||
| movl _CurrentFX,a0
|
||||
movl a5,d0
|
||||
subl _FuncObj,d0
|
||||
addql #3,d0
|
||||
movw d0,a1@(10) |CURRENTFX->pc
|
||||
movl d7,a3@+ |CPushCStack
|
||||
movl d2,a1 |get LOCFNCELL = a1
|
||||
movw a1@(2),d0
|
||||
tstw d0
|
||||
jlt fn3noargs |no function arguments
|
||||
| movw a0@(2),d0
|
||||
extl d0
|
||||
moveq #2,d1
|
||||
subl d0,d1
|
||||
| movl d1,d4
|
||||
jra fn3ly16
|
||||
fn3ly17:
|
||||
clrl a3@+
|
||||
addql #1,d1
|
||||
fn3ly16:
|
||||
tstl d1
|
||||
jlt fn3ly17
|
||||
| movl d4,d0
|
||||
asll #2,d1
|
||||
subl d1,a3
|
||||
fn3noargs:
|
||||
movl d3,d0 |CPush(BF_MARK32 | NEXTBLOCK)
|
||||
orl #-2147483648,d0
|
||||
movl d0,a3@+
|
||||
movl a3,_CurrentFX |CURRENTFX =
|
||||
movl _PVar,d0
|
||||
| subl _Lisp_world,d0
|
||||
subl a0,d0
|
||||
lsrl #1,d0
|
||||
andl #65535,d0
|
||||
orl #-1073741824,d0
|
||||
movl d0,a3@ |*CSTKPTR=FX_MARK etc
|
||||
movl d4,a0 |defcell = a0
|
||||
movw a0@(2),a3@(4) |->lofnheader = ->defpointer
|
||||
| movl a6@(-20),a0
|
||||
| movl a0@,d0
|
||||
| andl #16777215,d0
|
||||
| movw d0,a3@(4)
|
||||
| movl d4,a0
|
||||
| movl a6@(-20),a0
|
||||
movb a0@(1),a3@(7) |hi2fnheader = *((defcell)+1)
|
||||
lea a3@(20),a3
|
||||
movl a3,_PVar |PVar = CSTKPTR
|
||||
| movl d2,a0
|
||||
movw a1@(4),d0 ||LOCFNCELL->pv
|
||||
extl d0
|
||||
addql #1,d0
|
||||
| movl d0,a6@(-8)
|
||||
moveq #-1,d1
|
||||
jra fn3ly18
|
||||
fn3ly19:
|
||||
movl d1,a3@+
|
||||
movl d1,a3@+
|
||||
subql #1,d0
|
||||
fn3ly18:
|
||||
tstl d0
|
||||
jgt fn3ly19
|
||||
addqw #4,a3 | CSTKPTR += 2
|
||||
| movl d2,a0
|
||||
| moveq #0,d0
|
||||
subl a5,a5
|
||||
movw a1@(6),a5 |LOCFNCELL->startpc
|
||||
addl a1,a5
|
||||
| movl d0,a5
|
||||
movl a1,_FuncObj
|
||||
|
||||
|
||||
.end
|
||||
|
||||
|
||||
|.inline _min,8
|
||||
| cmp %o0,%o1
|
||||
| ble,a $10
|
||||
|
||||
4
src/xc.c
4
src/xc.c
@@ -1079,10 +1079,6 @@ native_check:
|
||||
/* TIMER INTERRUPT CHECK ROUTINE */
|
||||
/************************************************************************/
|
||||
check_interrupt:
|
||||
#if (defined(SUN3_OS3_OR_OS4_IL) || defined(I386) || defined(ISC))
|
||||
asm_label_check_interrupt();
|
||||
#endif
|
||||
|
||||
if ((UNSIGNED)CSTKPTR > (UNSIGNED)EndSTKP) {
|
||||
EXT;
|
||||
error("Unrecoverable Stack Overflow");
|
||||
|
||||
Reference in New Issue
Block a user