--- gforth/arch/alpha/machine.h 2000/09/23 15:06:04 1.8 +++ gforth/arch/alpha/machine.h 2001/12/29 20:40:49 1.10 @@ -16,7 +16,7 @@ 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. + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. */ /* Be careful: long long on Alpha are 64 bit :-(( */ @@ -169,6 +169,19 @@ typedef short Int16; _cfa[1] = (doesp); }) #endif +/* dynamic superinstruction stuff */ + +#define INST_GRANULARITY 4 +#define IND_JUMP_LENGTH 4 +#define IS_NEXT_JUMP(_addr) (((*(unsigned *)(_addr))&0xffe00000) == 0x6be00000) +#define ALIGN_CODE { \ + int align_diff; \ + old_code_here = (Address)(((((Cell)old_code_here)-1)|0xf)+1); \ + align_diff = old_code_here - code_here; \ + memcpy(code_here, ((char *)(int []){0x47ff041f,0x2fe00000,0x47ff041f,0x2fe00000})+16-align_diff,align_diff); \ + code_here = old_code_here; \ + } + #ifdef FORCE_REG /* $9-$14 are callee-saved, $1-$8 and $22-$25 are caller-saved */ #define IPREG asm("$10")