diff --git a/CMakeLists.txt b/CMakeLists.txt index da6b3d2..38d9407 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,6 @@ SET(MAIKO_HDRS inc/initkbddefs.h inc/initsoutdefs.h inc/inlineC.h - inc/inln386i.h inc/inln68k.h inc/inlndos.h inc/inlnPS2.h diff --git a/bin/compile-flags b/bin/compile-flags index 9c5fa0d..ceb0bb3 100755 --- a/bin/compile-flags +++ b/bin/compile-flags @@ -11,8 +11,6 @@ Flag Name Meaning/Usage _________ ________________________________________________________ BYTESWAP Used when compiling for a hardware architecture that has byte-swapped words and word-swapped 32-bit cells, e.g. 80386. -I386 True if compiling for the Sun386i (not just any 80386); - used because the 386i's display controller is odd. OS4 True if compiling for SunOS 4.x NOPIXRECT Used to suppress pixrect/pixwin options when they're not diff --git a/inc/adr68k.h b/inc/adr68k.h index 80bea93..a96900f 100644 --- a/inc/adr68k.h +++ b/inc/adr68k.h @@ -44,11 +44,7 @@ /* Translate Lisp_address to 68K address */ /* Lisp_addr: word offset */ -#ifndef I386 #define Addr68k_from_LADDR(Lisp_addr) (Lisp_world + (Lisp_addr)) -#else -#define Addr68k_from_LADDR(Lisp_addr) ((Lisp_addr) + Lisp_world) -#endif /* translate LispPage to 68k address */ @@ -62,11 +58,6 @@ #define StkOffset_from_68K(ptr68k)\ ((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Stackspace) >>1)) -#ifndef I386 #define Addr68k_from_StkOffset(stkoffset)\ (Stackspace + (stkoffset)) -#else -#define Addr68k_from_StkOffset(stkoffset)\ - ( (stkoffset) + Stackspace) -#endif #endif /* ADR68K_H */ diff --git a/inc/bbtsubdefs.h b/inc/bbtsubdefs.h index 5a2d790..65f9319 100644 --- a/inc/bbtsubdefs.h +++ b/inc/bbtsubdefs.h @@ -14,8 +14,7 @@ /********************************************************/ #if defined(SUNDISPLAY) && \ !defined(NOPIXRECT) && \ - !defined(NEWBITBLT) && \ - !defined(I386) + !defined(NEWBITBLT) #define prropstyle 1 #endif diff --git a/inc/inln386i.h b/inc/inln386i.h deleted file mode 100755 index 888b2bf..0000000 --- a/inc/inln386i.h +++ /dev/null @@ -1,221 +0,0 @@ -/* $Id: inln386i.h,v 1.2 1999/01/03 02:06:02 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */ - -/************************************************************************/ -/* */ -/* inlinedefs386i.c */ -/* */ -/* Dispatch-loop macro definitions specific to the Sun386i */ -/* */ -/************************************************************************/ - -/************************************************************************/ -/* */ -/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */ -/* */ -/* This file is work-product resulting from the Xerox/Venue */ -/* Agreement dated 18-August-1989 for support of Medley. */ -/* */ -/************************************************************************/ - - - /* undefine these macros so we use the 386i inline code */ -#undef Get_BYTE_PCMAC0 -#undef Get_BYTE_PCMAC1 -#undef Get_BYTE_PCMAC2 -#undef Get_BYTE_PCMAC3 - -#undef Get_DLword_PCMAC0 -#undef Get_DLword_PCMAC1 -#undef Get_DLword_PCMAC2 -#undef Get_DLword_PCMAC3 - -#define Get_BYTE_PCMAC0 Get_BYTE_PCMAC0fn() -#define Get_BYTE_PCMAC1 Get_BYTE_PCMAC1fn() -#define Get_BYTE_PCMAC2 Get_BYTE_PCMAC2fn() -#define Get_BYTE_PCMAC3 Get_BYTE_PCMAC3fn() - -#define Get_DLword_PCMAC0 Get_DLword_PCMAC0fn() -#define Get_DLword_PCMAC1 Get_DLword_PCMAC1fn() -#define Get_DLword_PCMAC2 Get_DLword_PCMAC2fn() -#define Get_DLword_PCMAC3 Get_DLword_PCMAC3fn() - -#undef DIFFERENCE -#undef PLUS2 -#undef IDIFFERENCE -#undef IPLUS2 - -#define DIFFERENCE { \ - fast_op_difference(POP_TOS_1); \ - nextop1; \ -diff_err: \ - asm("diff_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_difference, GET_POPPED); \ - } -#define IDIFFERENCE { \ - fast_op_idifference(POP_TOS_1); \ - nextop1; \ -idiff_err: \ - asm("idiff_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_idifference, GET_POPPED); \ - } -#define IDIFFERENCE_N(n) { \ - fast_op_idifferencen(n); \ - nextop2; \ -idiffn_err: \ - asm("idiffn_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_CALL_1d(N_OP_idifferencen, n); \ - } - -#define PLUS2 { \ - fast_op_plus(POP_TOS_1); \ - nextop1; \ -plus_err: \ - asm("plus_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_plus2, GET_POPPED); \ - } - -#define IPLUS2 { \ - fast_op_iplus(POP_TOS_1); \ - nextop1; \ -iplus_err: \ - asm("iplus_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_iplus2, GET_POPPED); \ - } -#define IPLUS_N(n) { \ - fast_op_iplusn(n); \ - nextop2; \ -iplusn_err: \ - asm("iplusn_err:"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - asm("popl %ecx"); \ - N_OP_CALL_1d(N_OP_iplusn, n); \ - } - -#undef GREATERP -#define GREATERP { \ - fast_op_greaterp(POP_TOS_1); \ - nextop1; \ -greaterp_err: \ - asm("greaterp_err: popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_greaterp, GET_POPPED); \ - } - -#undef IGREATERP -#define IGREATERP { \ - fast_op_igreaterp(POP_TOS_1); \ - nextop1; \ -igreaterp_err: \ - asm("igreaterp_err: popl %ecx"); \ - N_OP_POPPED_CALL_2(N_OP_igreaterp, GET_POPPED); \ - } - - -#undef LRSH8 -#define LRSH8 { \ - fast_op_lrsh8(); \ - nextop1; \ -lrsh8_err: \ - asm("lrsh8_err: "); \ - N_OP_CALL_1(N_OP_lrsh8); \ - } - -#undef LRSH1 -#define LRSH1 { \ - fast_op_lrsh1(); \ - nextop1; \ -lrsh1_err: \ - asm("lrsh1_err: "); \ - N_OP_CALL_1(N_OP_lrsh1); \ - } - -#undef LLSH8 -#define LLSH8 { \ - fast_op_llsh8(); \ - nextop1; \ -llsh8_err: \ - asm("llsh8_err: "); \ - N_OP_CALL_1(N_OP_llsh8); \ - } - -#undef LLSH1 -#define LLSH1 { \ - fast_op_llsh1(); \ - nextop1; \ -llsh1_err: \ - asm("llsh1_err: "); \ - N_OP_CALL_1(N_OP_llsh1); \ - } - - -#undef LOGOR -#define LOGOR { \ - fast_op_logor(POP_TOS_1); \ - nextop1; \ -logor_err: \ - asm("logor_err: popl %ecx"); \ - asm("rorl $15,%ebx"); \ - N_OP_POPPED_CALL_2(N_OP_logor, GET_POPPED); \ - } - -#undef LOGAND -#define LOGAND { \ - fast_op_logand(POP_TOS_1); \ - nextop1; \ -logand_err: \ - asm("logand_err: popl %ecx"); \ - asm("rorl $15,%ebx"); \ - N_OP_POPPED_CALL_2(N_OP_logand, GET_POPPED); \ - } - -#undef LOGXOR -#define LOGXOR { \ - fast_op_logxor(POP_TOS_1); \ - nextop1; \ -logxor_err: \ - asm("logxor_err: popl %ecx"); \ - asm("rorl $15,%ebx"); \ - N_OP_POPPED_CALL_2(N_OP_logxor, GET_POPPED); \ - } - -#undef N_OP_ADDBASE -#define N_OP_ADDBASE { \ - fast_op_addbase(POP_TOS_1); \ - nextop1; \ -addbase_err: \ - asm("addbase_err: popl %ecx"); \ - asm("addw $7,%bx"); \ - asm("rorl $15,%ebx"); \ - N_OP_POPPED_CALL_2(N_OP_addbase, GET_POPPED); \ - } - - -#undef N_OP_LOLOC -#define N_OP_LOLOC { fast_op_loloc(); nextop1; } -#undef N_OP_HILOC -#define N_OP_HILOC { fast_op_hiloc(); nextop1; } - -#undef N_OP_VAG2 -#define N_OP_VAG2 \ - { \ - asm(" subl $4,%esi"); \ - asm(" movl (%esi),%eax"); \ - asm(" roll $16,%ebx"); \ - asm(" movw %ax,%bx"); \ - asm(" rorl $16,%ebx"); \ - nextop1; } diff --git a/inc/lsptypes.h b/inc/lsptypes.h index 76e9d1e..5b604ec 100644 --- a/inc/lsptypes.h +++ b/inc/lsptypes.h @@ -614,8 +614,6 @@ typedef struct /* */ /************************************************************************/ -#ifndef I386 - /* Get DTD pointer(68k) from typenum */ #ifdef BIGVM #define GetDTD(typnum) (DTDspace + ((typnum)<<4)+((typnum)<<1)) @@ -626,20 +624,6 @@ typedef struct /* Get all type entry */ #define GetTypeEntry(address) ( GETWORD(MDStypetbl+((address)>>9)) ) -#else - /* Because the 386i's code generator does better with them */ - /* in this order (does an add, rather than mov-add) */ - /* JDS 22-mar-90 */ - -/* Get DTD pointer(68k) from typenum */ -#define GetDTD(typnum) (((typnum)<<4) + DTDspace) - -/* Get all type entry */ -#define GetTypeEntry(address) ( GETWORD(((address)>>9) + MDStypetbl) ) - -#endif /* I386 */ - - /* the type number is in the low 11 bits */ #define GetTypeNumber(address) (GetTypeEntry(address) & 0x7ff) diff --git a/src/bbtsub.c b/src/bbtsub.c index 21a5b19..0f31c31 100644 --- a/src/bbtsub.c +++ b/src/bbtsub.c @@ -1268,19 +1268,6 @@ LispPTR bltchar(LispPTR *args) DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl); SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight; -#ifdef I386 - /* Need to take care of byte order, because display bank */ - /* on the 386 is NOT bit reversed.... */ - if (IN_DISPLAY_BANK(pbt->pbtsourcehi)) - mpr_d(SrcePixRect)->md_flags |= MP_I386; - else - mpr_d(SrcePixRect)->md_flags &= (~MP_I386); - if (IN_DISPLAY_BANK(pbt->pbtdesthi)) - mpr_d(DestPixRect)->md_flags |= MP_I386; - else - mpr_d(DestPixRect)->md_flags &= (~MP_I386); -#endif /* I386 */ - mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3; mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3; @@ -2096,19 +2083,6 @@ void tedit_bltchar(LispPTR *args) DestPixRect->pr_width = destbpl = abs(pbt->pbtdestbpl); SrcePixRect->pr_height = DestPixRect->pr_height = pbt->pbtheight; -#ifdef I386 - /* Need to take care of byte order, because display bank */ - /* on the 386 is NOT bit reversed.... */ - if (IN_DISPLAY_BANK(pbt->pbtsourcehi)) - mpr_d(SrcePixRect)->md_flags |= MP_I386; - else - mpr_d(SrcePixRect)->md_flags &= (~MP_I386); - if (IN_DISPLAY_BANK(pbt->pbtdesthi)) - mpr_d(DestPixRect)->md_flags |= MP_I386; - else - mpr_d(DestPixRect)->md_flags &= (~MP_I386); -#endif /* I386 */ - mpr_mdlinebytes(DestPixRect) = (destbpl + 7) >> 3; mpr_mdlinebytes(SrcePixRect) = (srcebpl + 7) >> 3; } diff --git a/src/fvar.c b/src/fvar.c index 651390e..d260754 100644 --- a/src/fvar.c +++ b/src/fvar.c @@ -334,18 +334,10 @@ N_OP_stkscan ******************************************************************************/ LispPTR N_OP_stkscan(LispPTR tos) { -#ifdef I386 - int scratchx[3]; - int *scratch = (int *)(0xFFFFFFFC & (3 + (UNSIGNED)scratchx)); - *scratch = tos; - nnewframe(CURRENTFX, (DLword *)scratch, POINTERMASK & *scratch); - return (swapx(*scratch)); -#else int scratch; scratch = tos; nnewframe(CURRENTFX, (DLword *)&scratch, POINTERMASK & scratch); return (swapx(scratch)); -#endif /* I386 */ } /************************************************** diff --git a/src/initdsp.c b/src/initdsp.c index 1a32a15..b300459 100644 --- a/src/initdsp.c +++ b/src/initdsp.c @@ -479,10 +479,6 @@ void init_display2(DLword *display_addr, int display_max) else ColorDisplayPixrect = pr_open("/dev/fb"); DisplayRegionPixrect = mem_point(displaywidth, displayheight, 1, display_addr); -#ifdef I386 - ((struct mpr_data *)DisplayRegionPixrect->pr_data)->md_flags |= MP_I386; - ((struct mpr_data *)ColorDisplayPixrect->pr_data)->md_flags |= MP_I386; -#endif #ifdef DEBUG pr_getcolormap(ColorDisplayPixrect, 0, 2, oldred, oldgreen, oldblue); @@ -604,16 +600,6 @@ void display_before_exit() { #endif /* DOS */ } -#ifdef DISPLAYBUFFER - -#ifdef I386 -#define EVENADDR(ptr) (0xFFFFFFFE & (int)ptr) -#else -#define EVENADDR(ptr) (ptr) -#endif - -#endif /* DISPLAYBUFFER */ - #if defined(DISPLAYBUFFER) || defined(DOS) /************************************************************************/ /* */ @@ -647,16 +633,8 @@ in_display_segment(baseaddr) void flush_display_buffer() { #ifdef SUNDISPLAY #ifdef DISPLAYBUFFER -#ifdef I386 - bit_reverse_region(DisplayRegion68k, displaywidth, displayheight, DLWORD_PERLINE); -#endif - pr_rop(ColorDisplayPixrect, 0, 0, displaywidth, displayheight, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, 0, 0); - -#ifdef I386 - bit_reverse_region(DisplayRegion68k, displaywidth, displayheight, DLWORD_PERLINE); -#endif #endif /* DISPLAYBUFFER */ #endif /* SUNDISPLAY */ @@ -737,18 +715,6 @@ void byte_swapped_displayregion(int x, int y, int w, int h) /************************************************************************/ void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h) -#ifdef I386 -{ /*flush_display_buffer(); */ - int y; - y = ((DLword *)ybase - DisplayRegion68k) / DLWORD_PERLINE; - - bit_reverse_region(ybase, displaywidth, h, DLWORD_PERLINE); - pr_rop(ColorDisplayPixrect, x, y, displaywidth, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x, - y); - - bit_reverse_region(ybase, displaywidth, h, DLWORD_PERLINE); -} -#else { int y; y = ((DLword *)ybase - DisplayRegion68k) / DLWORD_PERLINE; @@ -766,7 +732,6 @@ void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h) TPRINT(("Exit flush_display_lineregion\n")); #endif /* DOS */ } -#endif /* I386 */ /************************************************************************/ /* */ @@ -786,18 +751,14 @@ void flush_display_lineregion(UNSIGNED x, DLword *ybase, UNSIGNED w, UNSIGNED h) #define BITSPERWORD 16 void flush_display_ptrregion(DLword *ybase, UNSIGNED bitoffset, UNSIGNED w, UNSIGNED h) -#ifdef I386 -{ flush_display_buffer(); } -#else { int y, x, baseoffset; baseoffset = (((DLword *)ybase) - DisplayRegion68k); y = baseoffset / DLWORD_PERLINE; x = bitoffset + (BITSPERWORD * (baseoffset - (DLWORD_PERLINE * y))); -#endif /* I386 */ #if (defined(SUNDISPLAY) && defined(DISPLAYBUFFER)) -pr_rop(ColorDisplayPixrect, x, y, w, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x, y); + pr_rop(ColorDisplayPixrect, x, y, w, h, COPY_PIXRECT_TO_COLOR, DisplayRegionPixrect, x, y); #elif (defined(XWINDOW) || defined(DOS)) TPRINT(("Enter flush_display_ptrregion\n x=%d, y=%d, w=%d, h=%d\n", x, y, w, h)); (currentdsp->bitblt_to_screen)(currentdsp, DisplayRegion68k, x, y, w, h); diff --git a/src/main.c b/src/main.c index 7b4135b..b870c84 100644 --- a/src/main.c +++ b/src/main.c @@ -530,26 +530,10 @@ int main(int argc, char *argv[]) JDS -- 1/18/90 also BITBLTSUB does it now. */ } -#ifdef I386 - /* 80387 initialization */ - asm(".data"); - asm(".align 4"); - asm("__FP_trunc:"); - asm(" .globl __FP_trunc"); - asm(".byte 0x3f"); - asm(".byte 0x0c"); - asm("__FP_round:"); - asm(" .globl __FP_round"); - asm(".byte 0x3f"); - asm(".byte 0x00"); - asm(".text"); - asm("fldcw __FP_round"); -#elif DOS +#ifdef DOS _setrealmode(0x3f); /* Don't interrupt on FP overflows */ _getrealerror(); -#endif /* I386 */ -#ifdef DOS tzset(); #endif diff --git a/src/uutils.c b/src/uutils.c index 615f95a..81196d2 100644 --- a/src/uutils.c +++ b/src/uutils.c @@ -202,8 +202,6 @@ LispPTR unix_getparm(LispPTR *args) { if (strcmp(envname, "MACH") == 0) { #if defined(sparc) envvalue = "sparc"; -#elif defined(I386) - envvalue = "i386"; #elif defined(DOS) envvalue = "386"; #elif defined(MAIKO_OS_MACOS) @@ -215,8 +213,6 @@ LispPTR unix_getparm(LispPTR *args) { } else if (strcmp(envname, "ARCH") == 0) { #if defined(sparc) envvalue = "sun4"; -#elif defined(I386) - envvalue = "sun386"; #elif defined(DOS) envvalue = "dos"; #elif defined(MAIKO_OS_MACOS) diff --git a/src/xc.c b/src/xc.c index b5dbe2b..336709a 100644 --- a/src/xc.c +++ b/src/xc.c @@ -131,10 +131,6 @@ register LispPTR tscache asm("bx"); #include "inlnSPARC.h" #endif /* SPARCDISP */ -#ifdef I386 -#include "inln386i.h" -#endif - #include "fast_dsp.h" /* trick now is that pccache points one ahead... */ @@ -1059,27 +1055,6 @@ nextopcode: case377: CLARITHEQUAL; -#ifdef I386 - /* to defeat the damn optimizer, make it look like */ - /* we might branch to the error labels. */ - case 0400: goto plus_err; - case 0401: goto iplus_err; - case 0402: goto iplusn_err; - case 0403: goto idiff_err; - case 0404: goto diff_err; - case 0405: goto idiffn_err; - case 0406: goto greaterp_err; - case 0411: goto igreaterp_err; - case 0407: goto llsh8_err; - case 0410: goto lrsh1_err; - case 0414: goto lrsh8_err; - case 0417: goto llsh1_err; - case 0413: goto logor_err; - case 0412: goto logand_err; - case 0416: goto logxor_err; - case 0415: goto addbase_err; -#endif - default: error("should not default"); } /* switch */