(DEFINE-FILE-INFO §READTABLE "XCL" §PACKAGE "INTERLISP") (filecreated " 4-Nov-86 13:22:11" ("compiled on " {eris}sources>addarith.\;27) " 4-Nov-86 00:14:43" "COMPILE-FILEd" |in| "Xerox Lisp 4-Nov-86 ..." |dated| " 4-Nov-86 00:47:23") (filecreated " 4-Nov-86 13:21:14" {eris}sources>addarith.\;27 34131 |changes| |to:| (vars addarithcoms) |previous| |date:| " 3-Nov-86 11:55:32" {eris}sources>addarith.\;26) (rpaqq addarithcoms ((localvars . t) (* \; "OK") (macros mask.1\'s mask.0\'s bittest bitset bitclear) (coms (optimizers lognot) (fns lognot)) (coms (* \; "BYTE hacking functions") (records bytespec) ( macros loadbyte depositbyte) (* \; "NOT OK YET") (optimizers byte dpb ldb) (macros bytesize byteposition) (fns ldb dpb byte) (fns \\ldbexpander \\dpbexpander)) (coms (optimizers imod) (fns imodlessp) (macros imodplus imoddifference)) (coms (fns rot) (macros .rot.)) (coms (* |;;| "Primitive Functions for extracting fields as integers") (macros \\xloadbyteword) (fns \\putbasebits) (* |;;| "Primitive functions, especially needed for CommonLisp array package.") (declare\: dontcopy ( macros .hihalfwordlo. .hihalfwordhi. .lohalfwordlo. .lohalfwordhi.))) (coms (* |;;| "Beginning of rewrite of some LLARITH things, modularly using the macros of this file") (declare\: dontcopy (export (constants mask0word1\'s mask1word0\'s maskword1\'s maskhalfword1\'s bitsperhalfword) (macros eqzerop) (macros \\movetobox .xunbox. .xllsh. .xllsh1. .xlrsh. .add.2word.integers. .sub.2word.integers. .32bitmul.) (macros .sumsmallmod. .differencesmallmod.)) (macros .add.2word.integers. .sub.2word.integers. .32bitmul.) (macros \\getbasenibble \\putbasenibble \\getbasebit \\putbasebit))) (prop filetype addarith))) (putprops mask.1\'s macro (openlambda (position size) (lsh (sub1 (lsh 1 size)) position))) (putprops mask.0\'s macro (openlambda (position size) (lognot (mask.1\'s position size)))) (putprops bittest macro ((n mask) (neq 0 (logand n mask)))) (putprops bitset macro (= . logor)) (putprops bitclear macro ((x mask) (logand x (lognot mask)))) cl::|optimize-LOGNOT| d1 (l (2 $$ctx 1 $$env 0 $$whole)) @gmÿHhnil (8 logxor) () (let* ((a0175 (quote lognot)) (a0176 (quote compiler:optimizer-list)) (a0178 (cl:adjoin (quote cl::|optimize-LOGNOT|) (get a0175 a0176)))) (putprop a0175 a0176 a0178)) lognot d1 (l (0 integer)) @mÿænil nil () (typerecord bytespec (bytespec.size bytespec.position)) (putprops loadbyte macro ((n pos size) (logand (rsh n pos) (mask.1\'s 0 size)))) (putprops depositbyte macro (openlambda (n pos size val) (logor (bitclear n (mask.1\'s pos size)) (lsh (logand val (mask.1\'s 0 size)) pos)))) cl::|optimize-BYTE| d1 (l (2 $$ctx 1 $$env 0 $$whole)) Y@1Hi Hi º¹J3 ²#I3 ²gIJh[dždiðª3µ gKhggggIggJh(17 lispform.simplify 10 lispform.simplify) (76 _ 73 bytespec.position 69 _ 66 bytespec.size 63 bytespec 60 |create| 52 quote 32 bytespec) () (let* ((a0180 (quote byte)) (a0181 (quote compiler:optimizer-list)) (a0183 (cl:adjoin (quote cl::|optimize-BYTE|) (get a0180 a0181)))) (putprop a0180 a0181 a0183)) cl::|optimize-DPB| d1 (l (2 $$ctx 1 $$env 0 $$whole)) @ (4 \\dpbexpander) nil () (let* ((a0185 (quote dpb)) (a0186 (quote compiler:optimizer-list)) (a0188 (cl:adjoin (quote cl::|optimize-DPB|) (get a0185 a0186)))) (putprop a0185 a0186 a0188)) cl::|optimize-LDB| d1 (l (2 $$ctx 1 $$env 0 $$whole)) @ (4 \\ldbexpander) nil () (let* ((a0190 (quote ldb)) (a0191 (quote compiler:optimizer-list)) (a0193 (cl:adjoin (quote cl::|optimize-LDB|) (get a0190 a0191)))) (putprop a0190 a0191 a0193)) (putprops bytesize macro ((bytespec) (|fetch| bytespec.size |of| bytespec))) (putprops byteposition macro ((bytespec) (|fetch| bytespec.position |of| bytespec))) ldb d1 (l (1 integer 0 bytespec)) A@ @kHçkÙå(7 rsh) nil () dpb d1 (l (2 integer 1 bytespec 0 newbyte)) #BAAHkJçkÙIçmÿæå@kJçkÙåIçänil nil () byte d1 (l (1 position 0 size)) g@Ahnil (2 bytespec) () \\ldbexpander d1 (l (0 x))  €@i X@YH ZµKIi [Hd¢±Ÿdg𢱕\H]K 3 ³KL ²[KM ²TLM ²MgIMLhgð²±gIJ^dždiðª3µ gNhJ_dŸdið«3µ gOhhgoogIohLMhlð²)K 3 ¦HK ²gIgHhgHhhgoogIohHh(209 args.commutablep 200 evaluable.constantp 80 args.commutablep 73 args.commutablep 66 args.commutablep 56 evaluable.constantp 26 lispform.simplify 17 evaluable.constantp 8 lispform.simplify) (249 loadbyte 238 lambda 225 bytesize 218 byteposition 214 loadbyte 171 loadbyte 160 lambda 146 quote 124 quote 105 loadbyte 99 bytespec 85 loadbyte 39 byte) ( 254 ((byteposition |\\PositionSize|) (bytesize |\\PositionSize|)) 246 (declare (localvars |\\PositionSize|)) 242 (|\\PositionSize|) 176 (|\\Byteposition| |\\Bytesize|) 168 (declare (localvars |\\Bytesize| |\\Byteposition|)) 164 (|\\Bytesize| |\\Byteposition|)) \\dpbexpander d1 (l (0 x)) ‰ @@i @i £ Id²dgð²doô˜_µ0I _µTHi ^dJ hðµOhð´ NI hð]d²vg°rgð²ÍO_O_¿»OO_¿¼K ´L _¿°°gð²¨O_dŸdið«3µ gOh»O_dŸdið«3µ gOh¼i_¿±ÿoH_K²ML²JO¬KL ²JI žgJLKOh°sgoogJggOhhKLh°JIlð²$JI ²gJgIhgIhOh°!i½googJohIh_M²gooOhHhO(299 args.commutablep 230 args.commutablep 223 args.commutablep 135 evaluable.constantp 129 evaluable.constantp 84 args.commutablep 69 args.commutablep 63 lispform.simplify 53 evaluable.constantp 16 lispform.simplify 8 lispform.simplify) (368 lambda 344 depositbyte 333 lambda 315 bytesize 308 byteposition 304 depositbyte 267 |\\Bytesize| 264 |\\Byteposition| 260 depositbyte 249 lambda 234 depositbyte 193 quote 167 quote 145 bytespec 99 list 93 |\\NewByte| 29 cons) ( 376 (declare (localvars |\\NewByte|)) 372 (|\\NewByte|) 349 ((byteposition |\\ByteSpec|) (bytesize |\\ByteSpec|) |\\NewByte|) 341 (declare (localvars |\\ByteSpec|)) 337 (|\\ByteSpec|) 257 (declare (localvars |\\Bytesize| |\\Byteposition|)) 253 (|\\Bytesize| |\\Byteposition|) 39 (quote bytespec)) |optimize-IMOD| d1 (l (2 $$ctx 1 $$env 0 $$whole)) '@H µgYd ²ögHIkÙh(22 poweroftwop 10 constantexpressionp) (27 logand 15 ignoremacro) () (let* ((a0195 (quote imod)) (a0196 (quote compiler:optimizer-list)) (a0198 (cl:adjoin (quote |optimize-IMOD|) (get a0195 a0196)))) (putprop a0195 a0196 a0198)) imodlessp d1 (l (2 modulus 1 y 0 x)) A@ÙB BkØâýñ(6 imod) nil () (putprops imodplus macro ((x y modulus) (imod (iplus x y) modulus))) (putprops imoddifference macro ((x y modulus) (imod (idifference x y) modulus))) rot d1 (l (2 fieldsize 1 n 0 x)) .AB BHÙ¹@I kHçkÙåkIçkÙHçmÿæå@kIçkÙåHçä(16 rsh 4 imod) nil () (putprops .rot. macro ((xform n fieldsize) ((openlambda (x) (depositbyte (loadbyte x (idifference fieldsize n) n) n (idifference fieldsize n) x)) xform))) (putprops \\xloadbyteword dmacro ((n pos size) (* n |is| |constrained| |to| |be| \a smallp) (logand ( \\xlrshword n pos) (mask.1\'s 0 (imin bitsperword size))))) \\putbasebits d1 (l (3 val 2 size 1 position 0 addr)) oAló²@AââââÐAlåb¿b¿°éBlAÕó²$@AlAÕCBlAÕÕb @kÐjb¿b¿¿°¿@dÈlAÕHkBçkÙIçmÿæåCkBçkÙåIçäHIÍI(53 \\putbasebits 50 rsh) nil () (putprops addarith filetype cl:compile-file) (putprops addarith copyright ("Xerox Corporation" 1982 1983 1984 1985 1986)) nil