| OCR Text |
Show r into the SAR indicated by s . • SSMASH (v, s) (macro) places the SAR value v into the SAR indicated by s . • VIRT (r) (macro) computes the virtual address indicated by the reference $fir), without changing the memory map. • LOCK_INFO (p) (macro) locks the information block of the process with process ID p. • TAG (r, t) (macro) tags the reference r with the tag t. 123 Unless they are declared explicitly, c variables are global. The following vari-abies have special meanings and are the equivalent of EWAM registers. • this _proc is the process ID of the current process. • cur_time is the current process time, used for time-stamping. • consptr is a reference to the next element of a list. In WRITE mode, it indicates the location to which the next element should be written: in READ mode, it indicates the location of the element with which unification should be attempted next. • continuation holds an enum value which is used by the jump table to pass control to the code for the next goal to be solved. • env is a reference to the first item in the current environment. • sp is a reference to the next free item in the (local) stack area. • hp is a reference to the next free item on the heap. • bp is a reference to the next free item on the local binding stack. A.l Macros The c code for instructions implemented as macros has the "new-line escape" character("\") removed for readability. #define FAIL goto fail #define call(p, s, 1) env_size = s; continuation = (enum label) 1; level++; goto p /* These two macros define the choice |