version 1.1, 1994/12/12 17:10:47
|
version 1.6, 1996/07/16 20:57:13
|
Line 1
|
Line 1
|
/* |
/* This is the machine-specific part for MIPS R[2346810]000 processors |
Copyright 1992 by the ANSI figForth Development Group |
|
|
|
This is the machine-specific part for MIPS R[2346810]000 processors |
Copyright (C) 1995 Free Software Foundation, Inc. |
|
|
|
This file is part of Gforth. |
|
|
|
Gforth is free software; you can redistribute it and/or |
|
modify it under the terms of the GNU General Public License |
|
as published by the Free Software Foundation; either version 2 |
|
of the License, or (at your option) any later version. |
|
|
|
This program is distributed in the hope that it will be useful, |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
GNU General Public License for more details. |
|
|
|
You should have received a copy of the GNU General Public License |
|
along with this program; if not, write to the Free Software |
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
*/ |
*/ |
|
|
|
#if !defined(USE_TOS) && !defined(USE_NO_TOS) |
|
/* on the mips this is a mixed blessing, since defining this spills |
|
the rp with some gcc versions. This machine has 31 regs, yet that's |
|
not enough for gcc-2.4.5 :-( */ |
|
#define USE_TOS |
|
#endif |
|
|
/* cache flush stuff */ |
/* cache flush stuff */ |
|
|
#ifndef INDIRECT_THREADED |
#ifndef INDIRECT_THREADED |
Line 12
|
Line 35
|
#endif |
#endif |
#endif |
#endif |
|
|
#ifdef DIRECT_THREADED |
#ifdef ultrix |
|
|
/* this works on Ultrix. Let's hope it works on others, too */ |
|
#include <mips/cachectl.h> |
#include <mips/cachectl.h> |
|
#else |
|
/* works on Irix */ |
|
#include <sys/cachectl.h> |
|
#endif |
|
|
#define CACHE_FLUSH(addr,size) \ |
#define FLUSH_ICACHE(addr,size) \ |
cacheflush((char *)(addr), (int)(size), BCACHE) |
cacheflush((char *)(addr), (int)(size), BCACHE) |
|
|
#endif |
|
|
|
#include "32bit.h" |
#include "32bit.h" |
|
|
#ifdef DIRECT_THREADED |
#ifdef DIRECT_THREADED |
Line 57
|
Line 80
|
|
|
/* this is the point where the does code starts if label points to the |
/* this is the point where the does code starts if label points to the |
* jump dodoes */ |
* jump dodoes */ |
# define DOES_CODE(cfa) ((Xt *)(((char *)CODE_ADDRESS(cfa))+8)) |
# define DOES_CODE1(cfa) ((Xt *)(((char *)CODE_ADDRESS(cfa))+8)) |
|
|
/* this is a special version of DOES_CODE for use in dodoes */ |
/* this is a special version of DOES_CODE for use in dodoes */ |
# define DOES_CODE1(cfa) DOES_CODE(cfa) |
# define DOES_CODE(cfa) DOES_CODE1(cfa) |
|
|
# define DOES_HANDLER_SIZE 8 |
# define DOES_HANDLER_SIZE 8 |
# define MAKE_DOES_CF(cfa,does_code) \ |
# define MAKE_DOES_CF(cfa,does_code) \ |