|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)machdep.h 5.2 (Berkeley) 11/12/86 ! 7: */ ! 8: ! 9: #ifdef ADDR32 ! 10: #define pushaddr push4 ! 11: #define popaddr (char *)pop4 ! 12: #endif ADDR32 ! 13: #ifdef ADDR16 ! 14: #define pushaddr push2 ! 15: #define popaddr (char *)pop2 ! 16: #endif ADDR16 ! 17: ! 18: /* ! 19: * Machine specific macros for reading quantities from the ! 20: * interpreter instruction stream. Operands in the instruction ! 21: * stream are aligned to short, but not long boundries. Blockmarks ! 22: * are always long aligned. Stack alignment indicates whether the ! 23: * stack is short or long aligned. Stack alignment is assumed to ! 24: * be no more than long aligned for ADDR32 machines, short aligned ! 25: * for ADDR16 machines. ! 26: */ ! 27: #if defined(vax) || defined(mc68000) || defined(pdp11) ! 28: #define PCLONGVAL(target) target = *pc.lp++ ! 29: #define GETLONGVAL(target, srcptr) target = *(long *)(srcptr) ! 30: #define STACKALIGN(target, value) target = ((value) + 1) &~ 1 ! 31: #endif vax || mc68000 || pdp11 ! 32: ! 33: #ifdef tahoe ! 34: #define PCLONGVAL(target) target = *pc.sp++ << 16, target += *pc.usp++ ! 35: #define GETLONGVAL(target, srcptr) \ ! 36: tsp = (short *)(srcptr), \ ! 37: target = *tsp++ << 16, target += *(unsigned short *)tsp ! 38: #define STACKALIGN(target, value) target = ((value) + 3) &~ 3 ! 39: #endif tahoe
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.