/* 02Aug97 p5spdefs2.h */ /* corrected the entries for powrj and powdj */ /* added ush64 entry after ash64 */ /* corrected entry for arem64 to specify 4 (32-bit) */ /* arguments of total size 16 bytes */ /* corrected entry for arem64 to specify a return type of real */ /* size 8 instead of integer size 8 */ /* modify the entries for f_lishft and f_mle to make */ /* them "integer" procedures (this reflects the status */ /* of the support procedures used on PENTIUM but does */ /* not reflect the correct status in for example SPARC */ /*each entry is used as four byte values, as follows: */ /* (Byte 3 is the least significant byte, etc) */ /* */ /* Byte 3: type of function result */ /* Byte 2: size of function result */ /* Byte 1: 0 - use m/c specific subs etc, 1 - don't */ /* I think this means 1 == mangle per abi ... 0 means leave name as is */ /* Byte 0: 0 => regular routine */ /* 1 => integer routine (does not use reals) */ /* 2 => real*4 arithmetic routine */ /* 3 => real*8 arithmetic routine */ /* Note Bytes 0 & 1 are not releavant to the INtel bridge */ #define _FN(b0,b1,b2,b3) (((b0)<<24)|((b1)<<16)|((b2)<<8)|(b3)) #define _VFN(b0,b1) _FN(b0,b1,0,0) /* void */ #define _IFN(b0,b1) _FN(b0,b1,INTSIZE,Intval) /* int */ #define _LIFN(b0,b1) _FN(b0,b1,INTSIZE*2,Intval) /* long long */ #define _UFN(b0,b1) _FN(b0,b1,INTSIZE,Uintval) /* unsigned */ #define _LUFN(b0,b1) _FN(b0,b1,INTSIZE*2,Uintval) /* long long u*/ #define _PFN(b0,b1) _FN(b0,b1,ADDRESSSIZE,0) /* ptr */ #define _RFN(b0,b1) _FN(b0,b1,4,RealType) /* float */ #define _DFN(b0,b1) _FN(b0,b1,8,RealType) /* double */ #define _R10FN(b0,b1) _FN(b0,b1,10,RealType) /* real*10 */ #define _R12FN(b0,b1) _FN(b0,b1,12,RealType) /* real*12 */ #define _R16FN(b0,b1) _FN(b0,b1,16,RealType) /* real*16 */ #define INTSIZE 4 /* Eprocpdesc gives a parameter summary for each expression */ /* support procedure as *Nparams<<16! Bytes of Params */ #define _ARGS(nparams,paramsize) (((nparams)<<16)|(paramsize)) /* Expparaminfo */ #if defined(MAXEXPPARAM) && MAXEXPPARAM!=5 #error definition of _EXP assumes MAXEXPPARAM is 5 #endif /* This array contains the paramater type and size of each */ /* parameter of each expression support procedure as */ /* (epctype)<<24 ! size in bytes */ /* A maximum of MAXEXPPARAM parameters are allowed. */ /* Routines needing more have to go via Mspcall */ #define _ARG(epctype,size) (((epctype)<<24)|(size)) #define _I _ARG(Intval,INTSIZE) /* int */ #define _LI _ARG(Intval,INTSIZE*2) /* long long */ #define _U _ARG(Uintval,INTSIZE) /* unsigned */ #define _LU _ARG(Uintval,INTSIZE*2) /* long long unsigned */ #define _P _ARG(0,ADDRESSSIZE) /* ptr */ #define _R _ARG(RealType,4) /* float */ #define _D _ARG(RealType,8) /* double */ #define _R10 _ARG(RealType,10) /* float */ #define _R12 _ARG(RealType,12) /* double */ #define _R16 _ARG(RealType,16) /* double */ #define _C8 _ARG(Cmplxval,8) /* Complex with two real*4 */ #define _C16 _ARG(Cmplxval,16) /* Complex with two real*8 */ #define _C20 _ARG(Cmplxval,20) /* Complex with two real*10 */ #define _C24 _ARG(Cmplxval,24) /* Complex with two real*12 */ #define _C32 _ARG(Cmplxval,32) /* Complex with two real*16 */ /* the following were derived automatically from the intelspnames1.h * and have been checked and updated by hand (pds) */ _EXP(0, powii, "f_powii", _IFN(0,1), _ARGS(2,8), _I, _I, 0, 0, 0) _EXP(1, powri, "f_powri", _RFN(0,1), _ARGS(2,8), _R, _I, 0, 0, 0) _EXP(2, powdi, "f_powdi", _DFN(0,1), _ARGS(2,12),_D, _I, 0, 0, 0) _EXP(3, powiq, "a_powiq", _R16FN(0,0),_ARGS(2,20),_P, _P, _I, 0, 0) _EXP(4, powci, "f_powci", _VFN(0,1), _ARGS(3,12),_P, _P, _I, 0, 0) _EXP(5, powzi, "f_powzi", _VFN(0,1), _ARGS(3,12),_P, _P, _I, 0, 0) _EXP(6, powzzi, "f_powzzi", _VFN(0,1), _ARGS(3,12),-1, -1, 0, 0, 0) _EXP(7, powr10i, "f_powr10i",_R10FN(0,1), _ARGS(2,16), _R10, _I, 0, 0, 0) _EXP(8, powr10j, "f_powr10j",_R10FN(0,1), _ARGS(2,20), _R10, _LI, 0, 0, 0) _EXP(9, powrr, "f_powrr", _RFN(0,1), _ARGS(2,8), _R, _R, 0, 0, 0) _EXP(10, powdd, "f_powdd", _DFN(0,1), _ARGS(2,16),_D, _D, 0, 0, 0) _EXP(11, powqq, "a_powq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(12, powcc, "f_powcc", _VFN(0,1), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(13, powzz, "f_powzz", _VFN(0,1), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(14, powzzz, "f_powzzz", _VFN(0,1), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(15, powjj, "f_powjj", _LIFN(0,1), _ARGS(2,16), _LI, _LI, 0, 0, 0) _EXP(16, powji, "f_powji", _LIFN(0,1), _ARGS(2,12), _LI, _I, 0, 0, 0) _EXP(17, powrj, "f_powrj", _RFN(0,1), _ARGS(2,12), _R, _LI, 0, 0, 0) _EXP(18, powdj, "f_powdj", _DFN(0,0), _ARGS(2,16), _D, _LI, 0, 0, 0) _EXP(19, powcj, "f_powcj", _VFN(0,0), _ARGS(3,16), _P, _P, _LI, 0, 0) _EXP(20, powzj, "f_powzj", _VFN(0,0), _ARGS(3,16), _P, _P, _LI, 0, 0) _EXP(21, powqj, "f_powqj", _VFN(0,0), _ARGS(3,16), _P, _P, _LI, 0, 0) _EXP(22, powzzj, "f_powzzj", _VFN(0,0), _ARGS(3,16), _P, _P, _LI, 0, 0) _EXP(23, powll, "f_powr10r10", _R10FN(0,0), _ARGS(2,24), _R10, _R10, 0, 0, 0) _EXP(24, powvi, "f_powc20i", _VFN(0,0), _ARGS(3,12), _P, _P, _I, 0, 0) _EXP(25, powvv, "f_powc20c20", _VFN(0,0), _ARGS(3,12), _P, _P, _P, 0, 0) _EXP(26, powvj, "f_powc20j", _VFN(0,0), _ARGS(3,16), _P, _P, _LI, 0, 0) _EXP(27, unk11, "unknown", _VFN(0,0), _ARGS(0,0), -1, -1, 0, 0, 0) _EXP(28, itor, "i_itor", _DFN(0,0), _ARGS(1,4), _I, 0, 0, 0, 0) _EXP(29, utor, "i_utor", _DFN(0,0), _ARGS(1,4), _U, 0, 0, 0, 0) _EXP(30, lisign, "f_lisign", _IFN(0,0), _ARGS(2,8), _I, _I, 0, 0, 0) _EXP(31, ljsign, "f_ljsign", _LIFN(0,0), _ARGS(2,16),_LI, _LI, 0, 0, 0) _EXP(32, lsign, "f_lsign", _RFN(0,0), _ARGS(2,8), _R, _R, 0, 0, 0) _EXP(33, ldsign, "f_ldsign", _DFN(0,0), _ARGS(2,16),_D, _D, 0, 0, 0) _EXP(34, llsign, "f_llsign", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(35, lqsign, "f_lqsign", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(36, lishft, "f_lishft", _IFN(1,0), _ARGS(2,8), _I, _I, 0, 0, 0) _EXP(37, libits, "f_libits", _IFN(0,0), _ARGS(3,12),_I, _I, _I, 0, 0) _EXP(38, lbtest, "f_lbtest", _IFN(0,0), _ARGS(2,8), _I, _I, 0, 0, 0) _EXP(39, laint, "f_laint", _RFN(0,0), _ARGS(1,4), _R, 0, 0, 0, 0) _EXP(40, lanint, "f_lanint", _RFN(0,0), _ARGS(1,4), _R, 0, 0, 0, 0) _EXP(41, ldint, "f_ldint", _DFN(0,0), _ARGS(1,8), _D, 0, 0, 0, 0) _EXP(42, ldnint, "f_ldnint", _DFN(0,0), _ARGS(1,8), _D, 0, 0, 0, 0) _EXP(43, llint, "f_llint", _R10FN(0,0),_ARGS(1,12),_R10,0, 0, 0, 0) _EXP(44, llnint, "f_llnint", _R10FN(0,0),_ARGS(1,12),_R10,0, 0, 0, 0) _EXP(45, lqint, "f_lqint", _VFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(46, lqnint, "f_lqnint", _VFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(47, lamod, "f_lamod", _RFN(0,0), _ARGS(2,8), _R, _R, 0, 0, 0) _EXP(48, ldmod, "f_ldmod", _DFN(0,0), _ARGS(2,16),_D, _D, 0, 0, 0) _EXP(49, llmod, "f_llmod", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(50, lqmod, "f_lqmod", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(51, addl, "addl", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(52, subl, "subl", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(53, mull, "mull", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(54, divl, "divl", _R10FN(0,0),_ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(55, comparel,"comparel", _IFN(0,0), _ARGS(2,24),_R10,_R10,0, 0, 0) _EXP(56, addq, "a_addq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(57, subq, "a_subq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(58, mulq, "a_mulq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(59, divq, "a_divq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(60, compareq,"compareq", _IFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(61, jtoq, "a_jtoq", _VFN(0,0), _ARGS(2,12),_P, _LI, 0, 0, 0) _EXP(62, qtoj, "a_qtoj", _LIFN(0,0), _ARGS(2,8), _P, _I, 0, 0, 0) _EXP(63, u8tor16, "f_u8tor16",_VFN(0,0), _ARGS(2,12),_P, _LU, 0, 0, 0) _EXP(64, dtoq, "a_dtoq", _VFN(0,0), _ARGS(2,12),_P, _D, 0, 0, 0) _EXP(65, qtod, "a_qtod", _DFN(0,0), _ARGS(1,4), _P, 0, 0, 0, 0) _EXP(66, r16tou8, "f_r16tou8",_LUFN(0,0), _ARGS(1,4), _P, 0, 0, 0, 0) _EXP(67, itoq, "a_itoq", _VFN(0,0), _ARGS(2,8), _P, _I, 0, 0, 0) _EXP(68, qtoi, "a_qtoi", _IFN(0,0), _ARGS(2,8), _P, _I, 0, 0, 0) _EXP(69, u4tor16, "f_u4tor16",_VFN(0,0), _ARGS(2,8), _P, _U, 0, 0, 0) _EXP(70, rtoq, "a_rtoq", _VFN(0,0), _ARGS(2,8), _P, _R, 0, 0, 0) _EXP(71, r16tou4, "f_r16tou4",_UFN(0,0), _ARGS(1,4), _P, 0, 0, 0, 0) _EXP(72, qtol, "a_qtol", _R10FN(0,0),_ARGS(1,4), _P, 0, 0, 0, 0) _EXP(73, jtol, "a_jtol", _R10FN(0,0),_ARGS(1,8), _LI, 0, 0, 0, 0) _EXP(74, ltoj, "a_ltoj", _LIFN(0,0), _ARGS(2,16),_R10,_I, 0, 0, 0) _EXP(75, u8tor10, "f_u8tor10",_R10FN(0,0),_ARGS(1,8), _LU, 0, 0, 0, 0) _EXP(76, dtol, "a_dtol", _R10FN(0,0),_ARGS(1,8), _D, 0, 0, 0, 0) _EXP(77, ltod, "ltod", _DFN(0,0), _ARGS(1,12),_R10,0, 0, 0, 0) _EXP(78, r10tou8, "f_r10tou8",_LUFN(0,0), _ARGS(1,12),_R10,0, 0, 0, 0) _EXP(79, itol, "itol", _R10FN(0,0),_ARGS(1,4), _I, 0, 0, 0, 0) _EXP(80, ltoi, "ltoi", _IFN(0,0), _ARGS(2,16),_R10,_I, 0, 0, 0) _EXP(81, u4tor10, "f_u4tor10",_R10FN(0,0),_ARGS(1,4), _U, 0, 0, 0, 0) _EXP(82, ftol, "ftol", _R10FN(0,0),_ARGS(1,4), _R, 0, 0, 0, 0) _EXP(83, r10tou4, "f_r10tou4",_UFN(0,0), _ARGS(1,12),_R10,0, 0, 0, 0) _EXP(84, ltoq, "a_ltoq", _VFN(0,0), _ARGS(2,16),_P, _R10,0, 0, 0) _EXP(85, negl, "negl", _R10FN(0,0),_ARGS(1,12),_R10,0, 0, 0, 0) _EXP(86, fabsl, "a_fabsl", _R10FN(0,0),_ARGS(1,12),_R10,0, 0, 0, 0) _EXP(87, negq, "a_negq", _VFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(88, fabsq, "a_fabsq", _VFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(89, caddl, "w_caddl", _VFN(0,0), _ARGS(5,52),_P, _R10,_R10,_R10,_R10) _EXP(90, csubl, "w_csubl", _VFN(0,0), _ARGS(5,52),_P, _R10,_R10,_R10,_R10) _EXP(91, cmull, "w_cmull", _VFN(0,0), _ARGS(5,52),_P, _R10,_R10,_R10,_R10) _EXP(92, cdivl, "w_cdivl", _VFN(0,0), _ARGS(5,52),_P, _R10,_R10,_R10,_R10) _EXP(93, ceql, "w_ceql", _IFN(0,0), _ARGS(4,48),_R10,_R10,_R10,_R10,0) _EXP(94, cnel, "w_cnel", _IFN(0,0), _ARGS(4,48),_R10,_R10,_R10,_R10,0) _EXP(95, caddq, "w_caddq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(96, csubq, "w_csubq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(97, cmulq, "w_cmulq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(98, cdivq, "w_cdivq", _VFN(0,0), _ARGS(3,12),_P, _P, _P, 0, 0) _EXP(99, ceqq, "w_ceqq", _IFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(100,cneq, "w_cneq", _IFN(0,0), _ARGS(2,8), _P, _P, 0, 0, 0) _EXP(101,memset, "memset", _VFN(0,0), _ARGS(3,12),_I, _I, _I, 0, 0) _EXP(102, mle, "f_mle", _VFN(1,0), _ARGS(1,4), _I, 0, 0, 0, 0) _EXP(103, lccdiv, "f_lccdiv", _VFN(0,0), _ARGS(2,16), _C8, _C8, 0, 0, 0) _EXP(104, lcddiv, "f_lcddiv", _VFN(0,0), _ARGS(2,32), _C16, _C16,0, 0, 0) _EXP(105, ulladd, "__aulladd",_LUFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _EXP(106, ullsub, "__aullsub",_LUFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _EXP(107, ullmul, "__allmul", _LUFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _EXP(i08, ulldiv, "__aulldiv",_LUFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _EXP(109, ullrem, "__aullrem",_LUFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _EXP(110, ullcmp, "__aullcmp",_IFN(0,0), _ARGS(2,16), _LU, _LU, 0, 0,0 ) _SP(0, ccmult, "f_ccmult", _VFN(0,1), _ARGS(3,12)) _SP(1, cdmult, "f_cdmult", _VFN(0,1), _ARGS(3,12)) _SP(2, cqmult, "f_cqmult", _VFN(0,1), _ARGS(3,12)) _SP(3, ccdiv, "f_ccdiv", _VFN(0,1), _ARGS(3,12)) _SP(4, cddiv, "f_cddiv", _VFN(0,1), _ARGS(3,12)) _SP(5, cqdiv, "f_cqdiv", _VFN(0,1), _ARGS(3,12)) _SP(6, index, "s_index", _VFN(0,1), _ARGS(4,16)) _SP(7, concat, "f_concat", _VFN(0,1), _ARGS(4,16)) _SP(8, stop, "p_stop", _VFN(0,0), _ARGS(0,0)) _SP(9, cpystr, "f_cpystr", _VFN(0,1), _ARGS(4,16)) _SP(10, cpstr, "f_cpstr", _IFN(0,1), _ARGS(5,20)) _SP(11, eoft, "p_eoft", _IFN(0,1), _ARGS(1,4)) _SP(12, eof, "p_eof", _IFN(0,1), _ARGS(1,4)) _SP(13, eol, "p_eol", _IFN(0,1), _ARGS(1,4)) _SP(14, lazy, "p_lazy", _IFN(0,1), _ARGS(1,4)) _SP(15, shft, "i_shft", _IFN(0,1), _ARGS(2,8)) _SP(16, bits, "i_bits", _IFN(0,1), _ARGS(3,12)) _SP(17, bset, "i_bset", _IFN(0,1), _ARGS(2,8)) _SP(18, btest, "i_btest", _IFN(0,1), _ARGS(2,8)) _SP(19, bclr, "i_bclr", _IFN(0,1), _ARGS(2,8)) _SP(20, ishftc, "f_ishftc", _IFN(0,1), _ARGS(3,12)) _SP(21, auxst, "s#auxst", _IFN(0,1), _ARGS(1,4)) _SP(22, adjustl, "s_adjustl", _VFN(0,1), _ARGS(4,16)) _SP(23, adjustr, "s_adjustr", _VFN(0,1), _ARGS(4,16)) _SP(24, vrfy, "i_vrfy", _IFN(0,1), _ARGS(4,16)) _SP(25, lshift, "i_lshift", _IFN(0,1), _ARGS(2,8)) _SP(26, rshift, "i_rshift", _IFN(0,1), _ARGS(2,8)) _SP(27, mpy_jj, "mpy_jj", _LIFN(0,1), _ARGS(2,8)) _SP(28, div_jj, "div_jj", _LIFN(0,1), _ARGS(2,8)) _SP(29, udiv, "#udiv", _IFN(0,1), _ARGS(2,8)) _SP(30, urem, "#urem", _IFN(0,1), _ARGS(2,8)) _SP(31, mod, "j_mod", _LIFN(0,1), _ARGS(2,8)) _SP(32, bcomp, "s_bcomp", _VFN(0,1), _ARGS(3,12)) _SP(33, bmove, "s_bmove", _VFN(0,1), _ARGS(3,12)) _SP(34, bfill, "s_bfill", _VFN(0,1), _ARGS(3,12)) _SP(35, cdmdiv, "f_cdmdiv", _VFN(0,1), _ARGS(3,12)) _SP(36, cdmmult, "f_cdmmult", _VFN(0,1), _ARGS(3,12)) _SP(37, memcpy, "memcpy", _VFN(0,1), _ARGS(3,12)) _SP(38, ckmul, "s_ckmul", _IFN(0,1), _ARGS(2,8)) _SP(39, ckmulu, "s_ckmulu", _UFN(0,1), _ARGS(2,8)) _SP(40, ckaddu, "s_ckaddu", _UFN(0,1), _ARGS(2,8)) _SP(41, cksubu, "s_cksubu", _UFN(0,1), _ARGS(2,8)) _SP(42, ashr64, "__ashr64", _VFN(0,1), _ARGS(0,0)) _SP(43, ashl64, "__ashl64", _VFN(0,1), _ARGS(0,0)) _SP(44, ushr64, "__ushr64", _VFN(0,1), _ARGS(0,0)) _SP(45, arem64, "__arem64", _DFN(0,1), _ARGS(4,16)) _SP(46, ash64, "__ash64", _VFN(0,1), _ARGS(0,0)) _SP(47, ush64, "__ush64", _VFN(0,1), _ARGS(0,0)) _SP(48, cshft64, "__cshft64", _LIFN(0,1), _ARGS(4,16)) #undef _FN #undef _VFN #undef _IFN #undef _LIFN #undef _UFN #undef _LUFN #undef _PFN #undef _RFN #undef _DFN #undef _R10FN #undef _R12FN #undef _R16FN #undef _ARGS #undef _ARG #undef _I #undef _LI #undef _U #undef _LU #undef _P #undef _R #undef _D #undef _R10 #undef _R12 #undef _R16 #undef _C8 #undef _C16 #undef _C20 #undef _C24 #undef _C32