% COMMON-CMACROS.SL - C-macros and Anyregs common to all implementations

!*Link (FunctionName FunctionType NumberOfArguments)
!*Call (FunctionName)
!*LinkE (DeAllocCount FunctionName FunctionType NumberOfArguments)
!*JCall (FunctionName)

!*DeAlloc (DeAllocCount)
!*Alloc (N)
!*Exit (N)

!*JumpWithin (Label LowerBound UpperBound)
!*ProgBind (FluidsList)
!*FreeRstr (FluidsList)
!*Jump (Arg1)
!*Lbl (Arg1)
!*Push (Arg1)
!*Pop (Arg1)
!*Move (Source Destination)
!*JumpEQ (Label Arg1 Arg2)
!*JumpNotEQ (Label Arg1 Arg2)
!*JumpWLessP (Label Arg1 Arg2)
!*JumpWGreaterP (Label Arg1 Arg2)
!*JumpWLEQ (Label Arg1 Arg2)
!*JumpWGEQ (Label Arg1 Arg2)
!*JumpType (Label Arg TypeTag)
!*JumpNotType (Label Arg TypeTag)
!*JumpInType (Label Arg TypeTag)
!*JumpNotInType (Label Arg TypeTag)
!*MkItem (Arg1 Arg2)
!*WPlus2 (Arg1 Arg2)
!*WDifference (Arg1 Arg2)
!*WTimes2 (Arg1 Arg2)
!*AShift (Arg1 Arg2)
!*WShift (Arg1 Arg2)
!*WAnd (Arg1 Arg2)
!*WOr (Arg1 Arg2)
!*WXOr (Arg1 Arg2)
!*WMinus (Arg1 Arg2)
!*WNot (Arg1 Arg2)
!*Loc (Arg1 Arg2)
!*Field (Arg1 Arg2 Arg3 Arg4)
!*SignedField (Arg1 Arg2 Arg3 Arg4)
!*PutField (Arg1 Arg2 Arg3 Arg4)


AnyregCAR (Register Source)
AnyregCDR (Register Source)
AnyregQUOTE (Register Source)
AnyregREG (Register Source)
AnyregWCONST (Register Source)

(DefAnyreg WCONST
	   AnyregWCONST
	   (SOURCE))

AnyregFRAME (Register Source)
AnyregFRAMESIZE (Register)
(DefAnyreg FrameSize
	   AnyregFRAMESIZE)

AnyregMEMORY (Register Source ArgTwo)
AnyregLABEL (Register Source)
(DefAnyreg LABEL
	   AnyregLABEL)

(flag '(FLUID !$FLUID GLOBAL !$GLOBAL WVAR) 'TerminalOperand)
