|
|
1.1 ! root 1: #include "../h/config.h" ! 2: Global(_boundary) /* Icon/C boundary */ ! 3: Global(_setbound) /* Set the Icon/C boundary */ ! 4: Global(_clrbound) /* Clear the Icon/C boundary */ ! 5: ! 6: #ifdef VAX ! 7: /* ! 8: * setbound sets the boundary to the value of the fp of the ! 9: * calling procedure. ! 10: */ ! 11: _setbound: ! 12: Mask 0x0 # Don't need to save any registers ! 13: tstl _boundary # If the boundary is already set ! 14: jneq f1 # just leave it alone ! 15: movl 12(fp),_boundary # Otherwise, set boundary to fp of ! 16: # calling procedure. Must use saved ! 17: # fp because current fp points to ! 18: # frame made upon entry to setbound. ! 19: f1: ret # Return ! 20: /* ! 21: * clrbound clears the Icon/C boundary if returning to Icon ! 22: * code from C code. ! 23: */ ! 24: _clrbound: ! 25: Mask 0x0 # Don't need to save any registers ! 26: cmpl 12(fp),_boundary # If the fp of the caller is equal ! 27: # to the boundary, the return is ! 28: # from C to Icon. ! 29: jneq f11 # If that is the case, ! 30: clrl _boundary # clear the boundary, otherwise, ! 31: f11: ret # just return. ! 32: #endif VAX ! 33: ! 34: #ifdef PORT ! 35: DummyFcn(_setbound) ! 36: DummyFcn(_clrbound) ! 37: #endif PORT ! 38: ! 39: #ifdef PDP11 ! 40: DummyFcn(_setbound) ! 41: DummyFcn(_clrbound) ! 42: #endif PDP11
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.