Date: 24 Jun 86 14:36 PDT From: Masinter.pa Subject: Opcode survey To: Pedersen.pa cc: xclispcore^ edits are in bold. We should meet to review what's in microcode and what the priority list should be. I suggest we do this at the end of the Common Lisp status meeting... does anyone have any objection to discussing it then? OPCODES IMPLEMENTED IN MICROCODE BY MACHINE Jan Pedersen Key: '09 = 12K Dandetiger '08 = 4K Dandelion '00 = Dolphin '32 = Dorado (as reported by Gwan) '32L = Dorado (as reported by Larry) '86-4 = 4K Daybreak '86-8 = 8K Daybreak X = Has microcode P = Prolog microcode set - = Doesn't have microcode ? = Don't know Opcodes listed by entry in UFN table op '09 '08 '00 '32 '32L '86-4 '86-8 Name 000 - - - - - - - -X- *nobody implements: causes an error!* 001 X X X X X X X CAR 002 X X X X X X X CDR 003 X X X X X X X LISTP 004 X X X X X X X NTYPX 005 X X X X X X X TYPEP 006 X X X X X X X DTEST {new COERCE} 007 - - - - - - - CDDR {unused} 010 X X X X X X X FN0 ... X X X X X X X ... 015 X X X X X X X FNX 016 X X X X X X X APPLYFN 017 - - - - X - - CHECKAPPLY{?} [not 86-8? ] 020 X X X X X X X RETURN 021 X X X X X X X BIND 022 X X X X X X X UNBIND 023 X X X X X X X DUNBIND 024 X X X X X X X RPLPTR.N 025 X X X X X X X GCREF 026 X - - - - - - ASSOC [08 but not 86-8?] 027 X X X X X X X GVAR 030 X - X X X X X RPLACA 031 X - X X X X X RPLACD [which cases?] 032 X X X X X X X CONS 033 - - - - - - - {used for GETPROP} 034 X - - - - - - FMEMB 035 - - - - - - - {used for GETHASH} 036 - - - - - - - {unused, named PUTHASH} 037 X - X X X X X CREATECELL 040 X - X X X X X BIN 041 - - - - - - - BOUT {unused} 042 P - - - - - - {Prolog}OPFETCHPLUSOPDISP 043 - - - - - - - {unused, named LIST1} 044 - - - - - - - DOCOLLECT {unused} 045 - - - - - - - ENDCOLLECT {unused} 046 X - X - - X X RPLCONS 047 X - - - - - - LISTGET 050 - - - - - - - ELT 051 - - - - - - - NTHCHC 052 - - - - - - - SETA 053 - - - - - - - RPLCHARCODE {unused} 054 X X X X X X X EVAL 055 - - - - - - - {used for EVALV} 056 X X - - X X X TYPECHECK {unused} 057 X X X ? X X X STKSCAN 060 X - - - - - - BUSBLT 061 X - - - - - - MISC8{IBLT1 and IBLT2} 062 X - - - - - - POLY {Poly; Mat. Multiply} 063 X X - - X X X TYPEMASK.N 064 P - - - - - - {Prolog}PROLOGREADPTR 065 P - - - - - - {Prolog}PROLOGREADTAG 066 P - - - - - - {Prolog}PROLOGWRITETAGPTR 067 P - - - - - - {Prolog}PROLOGWRITE0PTR 070 X - - - - - - PSEUDOCOLOR 071 - - - - - X X DOVEMISC 072 X X - - X - X EQL 073 X - - - - - X DRAWLINE 074 X X ? ? X X X STOREN 075 X X - - X X X COPYN 076 X X X X - X X RAID 077 - - - - - - - {unused}RETURN FOR LLBREAK 100 X X X X X X X IVAR0 ... X X X X X X X ... 107 X X X X X X X IVARX 110 X X X X X X X PVAR0 ... X X X X X X X ... 117 X X X X X X X PVARX 120 X X X X X X X FVAR0 ... X X X X X X X ... 127 X X X X X X X FVARX 130 X X X X X X X PVAR0 ... X X X X X X X ... 137 X X X X X X X PVARX 140 X X X X X X X GVAR 141 X X - - X X X ARG0 142 X X X X X X X IVARX 143 X X X X X X X FVARX 144 X X X X X X X COPY 145 - - - X X - - MYARGCOUNT {used} 146 X X X X X X X MYALINK 147 X X X X X X X ACONST 150 X X X X X X X 'NIL 151 X X X X X X X 'T 152 X X X X X X X '0 153 X X X X X X X '1 154 X X X X X X X SIC 155 X X X X X X X SNIC 156 X X X X X X X SICX 157 X X X X X X X GCONST 160 X X X X X X X ATOMNUMBER (used?) 161 X X X X X X X READFLAGS 162 X X X X X X X READRP 163 X X X ? - X X WRITEMAP 164 X - X ? X - - READPRINTERPORT 165 X - X ? X - - WRITEPRINTERPORT 166 X X X X X X X PILOTBITBLT 167 X X X X X X X RCLK 170 X X X X X X X MISC1 171 X X X X - X X MISC2 172 X X X X - X X RECLAIMCELL 173 X X X X X X X GCSCAN1 174 X X X X X X X GCSCAN2 175 X X X X X X X SUBRCALL {used on 08 86?} 176 X X X X X X X CONTEXT 177 - - ? - - - - {unused}AUDIO 200 X X X X X X X JUMP00 ... X X X X X X X ... 207 X X X X X X X JUMP07 210 X X X X X X X JUMP10 ... X X X X X X X .... 217 X X X X X X X JUMP17 220 X X X X X X X FJUMP00 ... X X X X X X X ... 227 X X X X X X X FJUMP07 230 X X X X X X X FJUMP10 ... X X X X X X X ... 237 X X X X X X X FJUMP17 240 X X X X X X X TJUMP00 ... X X X X X X X ... 247 X X X X X X X TJUMP07 250 X X X X X X X TJUMP10 ... X X X X X X X ... 257 X X X X X X X TJUMP17 260 X X X X X X X JUMPX 261 X X X X X X X JUMPXX 262 X X X X X X X FJUMPX 263 X X X X X X X TJUMPX 264 X X X X X X X NFJUMPX 265 X X X X X X X NTJUMPX 266 X - - - - - - ARRAYINDEX1 267 X - - - - - - ARRAYINDEX2 270 X X X X X X X PVAR0 ... X X X X X X X ... 276 X X X X X X X PVAR6 277 X X X X X X X POP 300 X X - - - X X POP.N 301 X X - - - X X ATOMCELL.N 302 X X X X X X X GETBASEBYTE 303 - - - - - - - {unused} 304 X X X X X X X BLT 305 X - - - - - - PIXELBLT 306 - - - - - - - {unused} 307 X X X X X X X PUTBASEBYTE 310 X X X X X X X GETBASE.N 311 X X X X X X X GETBASEPTR.N 312 X X X X X X X GETBITS.N.FD 313 - - - - - - - {used for GETBASEFIXP} 314 - - - - - - - {used for PUTBASEFIXP} 315 X X X X X X X PUTBASE.N 316 X X X X X X X PUTBASEPTR.N 317 X X X X X X X PUTBITS.N.FD 320 X X X X X X X ADDBASE 321 X X X X X X X VAG2 322 X X X X X X X HILOC 323 X X X X X X X LOLOC 324 X X X X X X X PLUS2{see notes} 325 X X X X X X X DIFFERENCE{see notes} 326 X X X X X X X TIMES2{see notes} 327 X X X X X X X QUOTIENT{see notes} 330 X X X X X X X IPLUS2{see notes} 331 X X X X X X X IDIFFERENCE{see notes} 332 X X X X X X X ITIMES2{see notes} 333 X X X X X X X IQUOTIENT{see notes} 334 X X X X X X X IREMAINDER{see notes} 335 - - - - - X X {unused}{IPLUS.N} 336 - - - - - X X {unused}{IDIFFERENCE.N} 337 - - - - - - - {unused} 340 X X X X X X X LLSH1{see notes} 341 X X X X X X X LLSH8{see notes} 342 X X X X X X X LRSH1{see notes} 343 X X X X X X X LRSH8{see notes} 344 X X X X X X X LOGOR2{see notes} 345 X X X X X X X LOGAND2{see notes} 346 X X X X X X X LOGXOR2{see notes} 347 - - - - - - - {unused}{new ALSH} 350 X - X X X - X FPLUS2 351 X - X X X - X FDIFFERENCE 352 X - X X X - X FTIMES2 353 X - X X X - X FQUOTIENT 354 X - - - - - - UBFLOAT2 {UFADD, UFSUB, UFISUB, UFMULT, UFDIV, UGREAT, UMAX, UMIN, UREM} 355 X - - - X - - UBFLOAT1 {UTOB, BTOU, UABS, UNEG, UFIX} 356 X - - - - - - ARRAYREAD{GENERAL,UNBOXED} 357 X - - - - - - ARRAYWRITE{GENERAL,UNBOXED} 360 X X X X X X X EQ 361 X X X X X X X IGREATERP 362 X - X X X - X FGREATERP 363 X X X X X X X GREATERP 364 X X ? ? X - X EQUAL 365 X - X X X - X MAKENUMBER 366 X - X X X - - BOXIPLUS 367 X - X X X - - BOXIDIFFERENCE 370 - - - - - - - MISC5 371 X - - - - - - FFTSTEP 372 X - - - - - - MISC3 {Floating Point Array ops: EXP, MAG, FLOAT, COMPLEX, BLKMAX, BLKMIN, BLKABSMAX, BLKABSMIN, FLOATTOBYTE} 373 X - - - - - - MISC4 {Floating Point Array ops: TIMES, PERM, PLUS, DIFFERENCE, MAGIC, BITMAPBIT} 374 - - ? - X - - {reserved for DOLPHIN} 375 X X X X X X X SWAP 376 X X X X X X X NOP 377 - - - - - - - {unused} notes: 4K microcode: PLUS2, DIFFERENCE, TIMES2, QUOTIENT will ufn if args not INTEGERS IPLUS2, IDIFFERENCE will accept FIXP's as arguments, but will ufn if result is not a smallp or smallneg ITIMES2, IQUOTIENT, IREMAINDER will ufn if both args are not smallp 12K microcode: PLUS2, DIFFERENCE, TIMES2, QUOTIENT will try floating point if args not INTEGERS IPLUS2, IDIFFERENCE will accept FIXP's as arguments, and box the result if it is not a smallp or smallneg ITIMES2, IQUOTIENT, IREMAINDER will ufn if both args are not smallp End of messageC$Hl8( TIMESROMAN GACHA ?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8))  TIMESROMAN -$&% 8% !  * ,(%&')-((,*-"#, #($&$)%'($*####$%%%*"./.!#"# #)CiERkE,Tz