Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / vax / mimlib / expose-data.mud
diff --git a/mim/development/mim/vax/mimlib/expose-data.mud b/mim/development/mim/vax/mimlib/expose-data.mud
new file mode 100644 (file)
index 0000000..1e21294
--- /dev/null
@@ -0,0 +1,524 @@
+<DEFINITIONS "EXPOSE-DATA">
+
+<INCLUDE-WHEN <COMPILING? "EXPOSE-DATA"> "EXPOSE-DEFS">
+
+<NEWTYPE OPCODE-TABLE VECTOR>
+
+<SETG REGISTER-NAMES
+      '["r0" "r1" "r2" "r3" "r4" "r5" "r6" "r7" "r8" "r9" "ra"
+       "ms" "fr" "tp" "sp" "pc"]>
+
+<DEFINE MAKE-OPCODE-TABLE ("TUPLE" SPECS "AUX" (TBL <IVECTOR 256 %<>>))
+   #DECL ((SPECS) <TUPLE [REST <VECTOR STRING ANY>]> (TBL) VECTOR)
+   <MAPF %<>
+        <FUNCTION (SPEC "AUX" (SLOT <+ <HEX <1 .SPEC>>:FIX 1>))
+           <PUT .TBL .SLOT <2 .SPEC>>>
+        .SPECS>
+   <CHTYPE .TBL OPCODE-TABLE>>
+
+<DEFINE MAKE-KERNEL-TABLE ("TUPLE" PAIRS "AUX" 
+                         (RES <IVECTOR ,KERNEL-TABLE-LENGTH ()>))
+   #DECL ((PAIRS) <TUPLE [REST <VECTOR FIX STRING>]>)
+   <MAPF %<>
+        <FUNCTION (PAIR "AUX" BKTNUM)
+           <SET BKTNUM <+ <MOD <1 .PAIR> ,KERNEL-TABLE-LENGTH> 1>>
+           <PUT .RES .BKTNUM (<1 .PAIR> <2 .PAIR> !<NTH .RES .BKTNUM>)>>
+        .PAIRS>
+   .RES>
+
+<COND 
+ (<NOT <FEATURE? "COMPILER">>
+  <SETG OPCODE-TABLE
+        <MAKE-OPCODE-TABLE
+         ["00" ["halt" [] "Halt"]]
+         ["01" ["nop" [] "No operation"]]
+         ["02" ["rei" [] "Return from exception or interrupt"]]
+         ["03" ["bpt" [] "Break point fault"]]
+         ["04" ["ret" [] "Return from called procedure"]]
+         ["05" ["rsb" [] "Return from subroutine"]]
+         ["06" ["ldpctx" [] "Load process context"]]
+         ["07" ["svpctx" [] "Save process context"]]
+         ["08" ["cvtps" [2 1 2 1] "Convert packed to leading separate numeric"]]
+         ["09" ["cvtsp" [2 1 2 1] "Convert leading separate numeric to packed"]]
+         ["0a" ["index" [4 4 4 4 4 4] "Compute index"]]
+         ["0b" ["crc" [1 4 2 1] "Calculate cyclic redundancy check"]]
+         ["0c" ["prober" [1 2 1] "Probe read access"]]
+         ["0d" ["probew" [1 2 1] "Probe write access"]]
+         ["0e" ["insque" [1 1] "Insert into queue"]]
+         ["0f" ["remque" [1 4] "Remove from queue"]]
+         ["10" ["bsbb" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch to subroutine with byte displacement"]]
+         ["11" ["brb" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch with byte displacement"]]
+         ["12" ["bneq" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on not equal"]]
+         ["12" ["bnequ"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on not equal unsigned"]]
+         ["13" ["beql" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on equal"]]
+         ["13" ["beqlu"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on equal unsigned"]]
+         ["14" ["bgtr" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on greater"]]
+         ["15" ["bleq" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on less or equal"]]
+         ["16" ["jsb" [1] "Jump to subroutine"]]
+         ["17" ["jmp" [1] "Jump"]]
+         ["18" ["bgeq" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on greater or equal"]]
+         ["19" ["blss" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on less"]]
+         ["1a" ["bgtru" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on greater unsigned"]]
+         ["1b" ["blequ" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on less or equal unsigned"]]
+         ["1c" ["bvc" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on overflow clear"]]
+         ["1d" ["bvs" 
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on overflow set"]]
+         ["1e" ["bgequ"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on greater or equal unsigned"]]
+         ["1e" ["bcc"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on carry clear"]]
+         ["1f" ["blssu"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on less unsigned"]]
+         ["1f" ["bcs"
+                [%<ORB 1 ,BRANCH-BIT>]
+                "Branch on carry set"]]
+         ["20" ["addp4" [2 1 2 1] "Add packed 4 operand"]]
+         ["21" ["addp6" [2 1 2 1 2 1] "Add packed 6 operand"]]
+         ["22" ["subp4" [2 1 2 1] "Subtract packed 4 operand"]]
+         ["23" ["subp6" [2 1 2 1 2 1] "Subtract packed 6 operand"]]
+         ["24" ["cvtpt" [2 1 1 2 1] "Convert packed to trailing numeric"]]
+         ["25" ["mulp" [2 1 2 1 2 1] "Multiply packed"]]
+         ["26" ["cvttp" [2 1 1 2 1] "Convert trailing numeric to packed"]]
+         ["27" ["divp" [2 1 2 1 2 1] "Divide packed"]]
+         ["28" ["movc3" [2 1 1] "Move character 3 operand"]]
+         ["29" ["cmpc3" [2 1 1] "Compare character 3 operand"]]
+         ["2a" ["scanc" [2 1 1 1] "Scan characters"]]
+         ["2b" ["spanc" [2 1 1 1] "Span characters"]]
+         ["2c" ["movc5" [2 1 1 2 1] "Move character 5 operand"]]
+         ["2d" ["cmpc5" [2 1 1 2 1] "Compare character 5 operand"]]
+         ["2e" ["movtc" [2 1 1 1 2 1] "Move translated characters"]]
+         ["2f" ["movtuc" [2 1 1 1 2 1] "Move translated until character"]]
+         ["30" ["bsbw"
+                [%<ORB 2 ,BRANCH-BIT>]
+                "Branch to subroutine with word displacement"]]
+         ["31" ["brw"
+                [%<ORB 2 ,BRANCH-BIT>]
+                "Branch with word displacement"]]
+         ["32" ["cvtwl" [2 4] "Convert word to longword"]]
+         ["33" ["cvtwb" [2 1] "Convert word to byte"]]
+         ["34" ["movp" [2 1 1] "Move packed"]]
+         ["35" ["cmpp3" [2 1 1] "Compare packed 3 operand"]]
+         ["36" ["cvtpl" [2 1 4] "Convert packed to long"]]
+         ["37" ["cmpp4" [2 1 2 1] "Compare packed 4 operand"]]
+         ["38" ["editpc" [2 1 1 1] "Edit packed to character"]]
+         ["39" ["matchc" [2 1 2 1] "Match characters"]]
+         ["3a" ["locc" [1 2 1] "Locate character"]]
+         ["3b" ["skpc" [1 2 1] "Skip character"]]
+         ["3c" ["movzwl" [2 4] "Move zero-extended word to longword"]]
+         ["3d" ["acbw"
+                [2 2 2 %<ANDB 2 ,BRANCH-BIT>]
+                "Add compare and branch word"]]
+         ["3e" ["movaw" [2 4] "Move address of word"]]
+         ["3f" ["pushaw" [2] "Push address of word"]]
+         ["40" ["addf2" [4 4] "Add F_floating 2 operand"]]
+         ["41" ["addf3" [4 4 4] "Add F_floating 3 operand"]]
+         ["42" ["subf2" [4 4] "Subtract F_floating 2 operand"]]
+         ["43" ["subf3" [4 4 4] "Subtract F_floating 3 operand"]]
+         ["44" ["mulf2" [4 4] "Multiply F_floating 2 operand"]]
+         ["45" ["mulf3" [4 4 4] "Multiply F_floating 3 operand"]]
+         ["46" ["divf2" [4 4] "Divide F_floating 2 operand"]]
+         ["47" ["divf3" [4 4 4] "Divide F_floating 3 operand"]]
+         ["48" ["cvtfb" [4 1] "Convert F_floating to byte"]]
+         ["49" ["cvtfw" [4 2] "Convert F_floating to word"]]
+         ["4a" ["cvtfl" [4 4] "Convert F_floating to longword"]]
+         ["4b" ["cvtrfl" [4 4] "Convert rounded F_floating to longword"]]
+         ["4c" ["cvtbf" [1 4] "Convert byte to F_floating"]]
+         ["4d" ["cvtwf" [2 4] "Convert word to F_floating"]]
+         ["4e" ["cvtlf" [4 4] "Convert longword to F_floating"]]
+         ["4f" ["acbf" 
+                [4 4 4 %<ORB 2 ,BRANCH-BIT>]
+                "Add compare and branch F_floating"]]
+         ["50" ["movf" [4 4] "Move F_floating"]]
+         ["51" ["cmpf" [4 4] "Compare F_floating"]]
+         ["52" ["mnegf" [4 4] "Move negated F_floating"]]
+         ["53" ["tstf" [4] "Test F_floating"]]
+         ["54" ["emodf" [4 1 4 4 4] "Extended modulus F_floating"]]
+         ["55" ["polyf" [4 2 1] "Evaluate polynomial F_floating"]]
+         ["56" ["cvtfd" [4 8] "Convert F_floating to D_floating"]]
+         ["58" ["adawi" [2 2] "Add aligned word, interlocked"]]
+         ["5c" ["insqhi" [1 8] "Insert into queue head, interlocked"]]
+         ["5d" ["insqti" [1 8] "Insert into queue tail, interlocked"]]
+         ["5e" ["remqhi" [8 4] "Remove from queue head, interlocked"]]
+         ["5f" ["remqti" [8 4] "Remove from queue tail, interlocked"]]
+         ["60" ["addd2" [8 8] "Add D_floating 2 operand"]]
+         ["61" ["addd3" [8 8 8] "Add D_floating 3 operand"]]
+         ["62" ["subd2" [8 8] "Subtract D_floating 2 operand"]]
+         ["63" ["subd3" [8 8 8] "Subtract D_floating 3 operand"]]
+         ["64" ["muld2" [8 8] "Multiply D_floating 2 operand"]]
+         ["65" ["muld3" [8 8 8] "Multiply D_floating 3 operand"]]
+         ["66" ["divd2" [8 8] "Divide D_floating 2 operand"]]
+         ["67" ["divd3" [8 8 8] "Divide D_floating 3 operand"]]
+         ["68" ["cvtdb" [8 1] "Convert D_floating to byte"]]
+         ["69" ["cvtdw" [8 2] "Convert D_floating to word"]]
+         ["6a" ["cvtdl" [8 4] "Convert D_floating to longword"]]
+         ["6b" ["cvtrdl" [8 4] "Convert rounded D_floating to longword"]]
+         ["6c" ["cvtbd" [1 8] "Convert byte to D_floating"]]
+         ["6d" ["cvtwd" [2 8] "Convert word to D_floating"]]
+         ["6e" ["cvtld" [4 8] "Convert longword to D_floating"]]
+         ["6f" ["acbd" 
+                [8 8 8 %<ORB 2 ,BRANCH-BIT>]
+                "Add compare and branch D_floating"]]
+         ["70" ["movd" [8 8] "Move D_floating"]]
+         ["71" ["cmpd" [8 8] "Compare D_floating"]]
+         ["72" ["mnegd" [8 8] "Move negated D_floating"]]
+         ["73" ["tstd" [8] "Test D_floating"]]
+         ["74" ["emodd" [8 1 8 4 8] "Extended modulus D_floating"]]
+         ["75" ["polyd" [8 2 1] "Evaluate polynomial D_floating"]]
+         ["76" ["cvtdf" [8 4] "Convert D_floating to F_floating"]]
+         ["78" ["ashl" [1 4 4] "Arithmetic shift longword"]]
+         ["79" ["ashq" [1 8 8] "Arithmetic shift quadword"]]
+         ["7a" ["emul" [4 4 4 8] "Extended multiply"]]
+         ["7b" ["ediv" [4 8 4 4] "Extended divide"]]
+         ["7c" ["clrq" [8] "Clear quadword"]]
+         ["7d" ["movq" [8 8] "Move quadword"]]
+         ["7e" ["movaq" [8 4] "Move address of quadword"]]
+         ["7f" ["pushaq" [8] "Push address of quadword"]]
+         ["80" ["addb2" [1 1] "Add byte 2 operand"]]
+         ["81" ["addb3" [1 1 1] "Add byte 3 operand"]]
+         ["82" ["subb2" [1 1] "Subtract byte 2 operand"]]
+         ["83" ["subb3" [1 1 1] "Subtract byte 3 operand"]]
+         ["84" ["mulb2" [1 1] "Multiply byte 2 operand"]]
+         ["85" ["mulb3" [1 1 1] "Multiply byte 3 operand"]]
+         ["86" ["divb2" [1 1] "Divide byte 2 operand"]]
+         ["87" ["divb3" [1 1 1] "Divide byte 3 operand"]]
+         ["88" ["bisb2" [1 1] "Bit set byte 2 operand"]]
+         ["89" ["bisb3" [1 1 1] "Bit set byte 3 operand"]]
+         ["8a" ["bicb2" [1 1] "Bit clear byte 2 operand"]]
+         ["8b" ["bicb3" [1 1 1] "Bit clear byte 3 operand"]]
+         ["8c" ["xorb2" [1 1] "Exclusive OR byte 2 operand"]]
+         ["8d" ["xorb3" [1 1 1] "Exclusive OR byte 3 operand"]]
+         ["8e" ["mnegb" [1 1] "Move negated byte"]]
+         ["8f" ["caseb" 
+                [1 1 %<ORB 1 ,CASE-BIT>]
+                "Case byte"]]
+         ["90" ["movb" [1 1] "Move byte"]]
+         ["91" ["cmpb" [1 1] "Compare byte"]]
+         ["92" ["mcomb" [1 1] "Move complemented byte"]]
+         ["93" ["bitb" [1 1] "Bit test byte"]]
+         ["94" ["clrb" [1] "Clear byte"]]
+         ["95" ["tstb" [1] "Test byte"]]
+         ["96" ["incb" [1] "Increment byte"]]
+         ["97" ["decb" [1] "Decrement byte"]]
+         ["98" ["cvtbl" [1 4] "Convert byte to longword"]]
+         ["99" ["cvtbw" [1 2] "Convert byte to word"]]
+         ["9a" ["movzbl" [1 4] "Move zero-extended byte to longword"]]
+         ["9b" ["movzbw" [1 2] "Move zero-extended byte to word"]]
+         ["9c" ["rotl" [1 4 4] "Rotate longword"]]
+         ["9d" ["acbb" 
+                [1 1 1 %<ORB 2 ,BRANCH-BIT>]
+                "Add compare and branch byte"]]
+         ["9e" ["movab" [1 4] "Move address of byte"]]
+         ["9f" ["pushab" [1] "Push address of byte"]]
+         ["a0" ["addw2" [2 2] "Add word 2 operand"]]
+         ["a1" ["addw3" [2 2 2] "Add word 3 operand"]]
+         ["a2" ["subw2" [2 2] "Subtract word 2 operand"]]
+         ["a3" ["subw3" [2 2 2] "Subtract word 3 operand"]]
+         ["a4" ["mulw2" [2 2] "Multiply word 2 operand"]]
+         ["a5" ["mulw3" [2 2 2] "Multiply word 3 operand"]]
+         ["a6" ["divw2" [2 2] "Divide word 2 operand"]]
+         ["a7" ["divw3" [2 2 2] "Divide word 3 operand"]]
+         ["a8" ["bisw2" [2 2] "Bit set word 2 operand"]]
+         ["a9" ["bisw3" [2 2 2] "Bit set word 3 operand"]]
+         ["aa" ["bicw2" [2 2] "Bit clear word 2 operand"]]
+         ["ab" ["bicw3" [2 2 2] "Bit clear word 3 operand"]]
+         ["ac" ["xorw2" [2 2] "Exclusive OR word 2 operand"]]
+         ["ad" ["xorw3" [2 2 2] "Exclusive OR word 3 operand"]]
+         ["ae" ["mnegw" [2 2] "Move negated word"]]
+         ["af" ["casew" 
+                [2 2 %<ORB 2 ,CASE-BIT>]
+                "Case word"]]
+         ["b0" ["movw" [2 2] "Move word"]]
+         ["b1" ["cmpw" [2 2] "Compare word"]]
+         ["b2" ["mcomw" [2 2] "Move complemented word"]]
+         ["b3" ["bitw" [2 2] "Bit test word"]]
+         ["b4" ["clrw" [2] "Clear word"]]
+         ["b5" ["tstw" [2] "Test word"]]
+         ["b6" ["incw" [2] "Increment word"]]
+         ["b7" ["decw" [2] "Decrement word"]]
+         ["b8" ["bispsw" [2] "Bit set processor status word"]]
+         ["b9" ["bicpsw" [2] "Bit clear processor status word"]]
+         ["ba" ["popr" [2] "Pop registers"]]
+         ["bb" ["pushr" [2] "Push registers"]]
+         ["bc" ["chmk" [2] "Change mode to kernel"]]
+         ["bd" ["chme" [2] "Change mode to executive"]]
+         ["be" ["chms" [2] "Change mode to supervisor"]]
+         ["bf" ["chmu" [2] "Change mode to user"]]
+         ["c0" ["addl2" [4 4] "Add longword 2 operand"]]
+         ["c1" ["addl3" [4 4 4] "Add longword 3 operand"]]
+         ["c2" ["subl2" [4 4] "Subtract longword 2 operand"]]
+         ["c3" ["subl3" [4 4 4] "Subtract longword 3 operand"]]
+         ["c4" ["mull2" [4 4] "Multiply longword 2 operand"]]
+         ["c5" ["mull3" [4 4 4] "Multiply longword 3 operand"]]
+         ["c6" ["divl2" [4 4] "Divide longword 2 operand"]]
+         ["c7" ["divl3" [4 4 4] "Divide longword 3 operand"]]
+         ["c8" ["bisl2" [4 4] "Bit set longword 2 operand"]]
+         ["c9" ["bisl3" [4 4 4] "Bit set longword 3 operand"]]
+         ["ca" ["bicl2" [4 4] "Bit clear longword 2 operand"]]
+         ["cb" ["bicl3" [4 4 4] "Bit clear longword 3 operand"]]
+         ["cc" ["xorl2" [4 4] "Exclusive OR longword 2 operand"]]
+         ["cd" ["xorl3" [4 4 4] "Exclusive OR longword 3 operand"]]
+         ["ce" ["mnegl" [4 4] "Move negated longword"]]
+         ["cf" ["casel" 
+                [4 4 %<ORB 4 ,CASE-BIT>]
+                "Case longword"]]
+         ["d0" ["movl" [4 4] "Move longword"]]
+         ["d1" ["cmpl" [4 4] "Compare longword"]]
+         ["d2" ["mcoml" [4 4] "Move complemented longword"]]
+         ["d3" ["bitl" [4 4] "Bit test longword"]]
+         ["d4" ["clrl" [4] "Clear longword"]]
+         ["d5" ["tstl" [4] "Test longword"]]
+         ["d6" ["incl" [4] "Increment longword"]]
+         ["d7" ["decl" [4] "Decrement longword"]]
+         ["d8" ["adwc" [4 4] "Add with carry"]]
+         ["d9" ["sbwc" [4 4] "Subtract with carry"]]
+         ["da" ["mtpr" [4 4] "Move to processor register"]]
+         ["db" ["mfpr" [4 4] "Move from processor register"]]
+         ["dc" ["movpsl" [4] "Move processor status longword"]]
+         ["dd" ["pushl" [4 4] "Push longword"]]
+         ["de" ["moval" [4 4] "Move address of longword"]]
+         ["df" ["pushal" [4] "Push address of longword"]]
+         ["e0" ["bbs"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit set"]]
+         ["e1" ["bbc"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit clear"]]
+         ["e2" ["bbss"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit set and set"]]
+         ["e3" ["bbcs"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit clear and set"]]
+         ["e4" ["bbsc"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit set and clear"]]
+         ["e5" ["bbcc"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit clear and clear"]]
+         ["e6" ["bbssi"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit set and set, interlocked"]]
+         ["e7" ["bbcci"
+                [4 1 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on bit clear and clear, interlocked"]]
+         ["e8" ["blbs"
+                [4 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on low bit set"]]
+         ["e9" ["blbc"
+                [4 %<ORB 1 ,BRANCH-BIT>]
+                "Branch on low bit clear"]]
+         ["ea" ["ffs" [4 1 1 4] "Find first set bit"]]
+         ["eb" ["ffc" [4 1 1 4] "Find first clear bit"]]
+         ["ec" ["cmpv" [4 1 1 4] "Compare field"]]
+         ["ed" ["cmpzv" [4 1 1 4] "Compare zero-extended field"]]
+         ["ee" ["extv" [4 1 1 4] "Extract field"]]
+         ["ef" ["extzv" [4 1 1 4] "Extract zero-extended field"]]
+         ["f0" ["insv" [4 4 1 1] "Insert field"]]
+         ["f1" ["acbl"
+                [4 4 4 %<ORB 2 ,BRANCH-BIT>]
+                "Add compare and branch longword"]]
+         ["f2" ["aoblss"
+                [4 4 %<ORB 1 ,BRANCH-BIT>]
+                "Add one and branch on less"]]
+         ["f3" ["aobleq"
+                [4 4 %<ORB 1 ,BRANCH-BIT>]
+                "Add one and branch on less or equal"]]
+         ["f4" ["sobgeq"
+                [4 %<ORB 1 ,BRANCH-BIT>]
+                "Subtract one and branch on greater or equal"]]
+         ["f5" ["sobgtr"
+                [4 %<ORB 1 ,BRANCH-BIT>]
+                "Subtract one and branch on greater"]]
+         ["f6" ["cvtlb" [4 1] "Convert longword to byte"]]
+         ["f7" ["cvtlw" [4 2] "Convert longword to word"]]
+         ["f8" ["ashp" [1 2 1 1 2 1] "Arithmetic shift and round packed"]]
+         ["f9" ["cvtlp" [4 2 1] "Convert longword to packed"]]
+         ["fa" ["callg" [1 1] "Call procedure with general argument list"]]
+         ["fb" ["calls" [4 1] "Call procedure with stack argument list"]]
+         ["fc" ["xfc" [] "Extended function call"]]
+         ["fd" 
+          <MAKE-OPCODE-TABLE
+           ["32" ["cvtdh" [8 16] "Convert D_floating to H_floating"]]
+           ["33" ["cvtgf" [8 4] "Convert G_floating to F_floating"]]
+           ["40" ["addg2" [8 8] "Add G_floating 2 operand"]]
+           ["41" ["addg3" [8 8 8] "Add G_floating 3 operand"]]
+           ["42" ["subg2" [8 8] "Subtract G_floating 2 operand"]]
+           ["43" ["subg3" [8 8 8] "Subtract G_floating 3 operand"]]
+           ["44" ["mulg2" [8 8] "Multiply G_floating 2 operand"]]
+           ["45" ["mulg3" [8 8 8] "Multiply G_floating 3 operand"]]
+           ["46" ["divg2" [8 8] "Divide G_floating 2 operand"]]
+           ["47" ["divg3" [8 8 8] "Divide G_floating 3 operand"]]
+           ["48" ["cvtgb" [8 1] "Convert G_floating to byte"]]
+           ["49" ["cvtgw" [8 2] "Convert G_floating to word"]]
+           ["4a" ["cvtgl" [8 4] "Convert G_floating to longword"]]
+           ["4b" ["cvtrgl" [8 8] "Convert rounded G_floating to longword"]]
+           ["4c" ["cvtbg" [1 8] "Convert byte to G_floating"]]
+           ["4d" ["cvtwg" [2 8] "Convert word to G_floating"]]
+           ["4e" ["cvtlg" [4 8] "Convert longword to G_floating"]]
+           ["4f" ["acbg" [8 8 8 2] "Add, compare and branch G_floating"]]
+           ["50" ["movg" [8 8] "Move G_floating"]]
+           ["51" ["cmpg" [8 8] "Compare G_floating"]]
+           ["52" ["mnegg" [8 8] "Move negated G_floating"]]
+           ["53" ["tstg" [8] "Test G_floating"]]
+           ["54" ["emodg" [8 2 8 4 8] "Extended modulus G_floating"]]
+           ["55" ["polyg" [8 2 1] "Polynomial evaluation G_floating"]]
+           ["56" ["cvtgh" [8 16] "Convert G_floating to H_floating"]]
+           ["60" ["addh2" [16 16] "Add H_floating 2 operand"]]
+           ["61" ["addh3" [16 16 16] "Add H_floating 3 operand"]]
+           ["62" ["subh2" [16 16] "Subtract H_floating 2 operand"]]
+           ["63" ["subh3" [16 16 16] "Subtract H_floating 3 operand"]]
+           ["64" ["mulh2" [16 16] "Multiply H_floating 2 operand"]]
+           ["65" ["mulh3" [16 16 16] "Multiply H_floating 3 operand"]]
+           ["66" ["divh2" [16 16] "Divide H_floating 2 operand"]]
+           ["67" ["divh3" [16 16 16] "Divide H_floating 3 operand"]]
+           ["68" ["cvthb" [16 1] "Convert H_floating to byte"]]
+           ["69" ["cvthw" [16 2] "Convert H_floating to word"]]
+           ["6a" ["cvthl" [16 4] "Convert H_floating to longword"]]
+           ["6b" ["cvtrhl" [16 8] "Convert rounded H_floating to longword"]]
+           ["6c" ["cvtbh" [1 16] "Convert byte to H_floating"]]
+           ["6d" ["cvtwh" [2 16] "Convert word to H_floating"]]
+           ["6e" ["cvtlh" [4 16] "Convert longword to H_floating"]]
+           ["6f" ["acbh" [16 16 16 2] "Add, compare and branch H_floating"]]
+           ["70" ["movg" [16 16] "Move H_floating"]]
+           ["71" ["cmpg" [16 16] "Compare H_floating"]]
+           ["72" ["mnegg" [16 16] "Move negated H_floating"]]
+           ["73" ["tstg" [16] "Test H_floating"]]
+           ["74" ["emodg" [16 2 16 4 16] "Extended modulus H_floating"]]
+           ["75" ["polyg" [16 2 1] "Polynomial evaluation H_floating"]]
+           ["76" ["cvthg" [16 8] "Convert H_floating to G_floating"]]
+           ["7c" ["clro" [16] "Clear octaword"]]
+           ["7d" ["movo" [16 16] "Move octaword"]]
+           ["7e" ["movao" [16 4] "Move address of octaword"]]
+           ["7f" ["pushao" [16] "Push address of octaword"]]
+           ["98" ["cvtfh" [4 16] "Convert F_floating to H_floating"]]
+           ["99" ["cvtfg" [4 8] "Convert F_floating to G_floating"]]
+           ["f6" ["cvthf" [16 4] "Convert H_floating to F_floating"]]
+           ["f7" ["cvthd" [16 8] "Convert H_floating to D_floating"]]>]
+         ["fe"
+          <MAKE-OPCODE-TABLE
+           ["fd" ["bugl" [4] "BUGCHECK longword"]]
+           ["fe" ["bugw" [2] "BUGCHECK word"]]>]>>)>
+
+<COND 
+ (<NOT <FEATURE?"COMPILER">>
+  <SETG KERNEL-TABLE
+        <MAKE-KERNEL-TABLE
+         [8    "finis"]
+         [12   "iframe"]
+         [16   "mcall"]
+         [20   "icons"]
+         [24   "incall"]
+         [28   "igets"]
+         [32   "isets"]
+         [36   "ifixbnd"]
+         [40   "iunbind"]
+         [44   "brecord"]
+         [48   "bvector"]
+         [52   "blist"]
+         [56   "ibind"]
+         [60   "iblock"]
+         [64   "iactivation"]
+         [68   "iagain"]
+         [72   "iretry"]
+         [76   "irtuple"]
+         [80   "ituple"]
+         [84   "lckint"]
+         [88   "inewtype"]
+         [92   "iopen"]
+         [96   "iclose"]
+         [100  "iread"]
+         [104  "iprint"]
+         [108  "isave"]
+         [112  "irestore"]
+         [116  "irandom"]
+         [120  "icomperr"]
+         [124  "birec"]
+         [128  "inthu"]
+         [132  "irestu"]
+         [136  "iputu"]
+         [140  "inthr"]
+         [144  "iputr"]
+         [148  "ibacku"]
+         [152  "itopu"]
+         [156  "ireset"]
+         [160  "iatic"]
+         [164  "iargs"]
+         [168  "ciemp"]
+         [172  "cinth"]
+         [176  "cimon"]
+         [180  "cirst"]
+         [184  "cigas"]
+         [188  "cigvl"]
+         [192  "iswnext"]
+         [196  "inexts"]
+         [200  "irelu"]
+         [204  "irelr"]
+         [208  "irell"]
+         [212  "icontents"]
+         [216  "imarkr"]
+         [220  "imarkr?"]
+         [224  "isyscall"]
+         [228  "iquit"]
+         [232  "ittable"]
+         [236  "isetzone"]
+         [240  "ilegal?"]
+         [244  "iunwcnt"]
+         [248  "impages"]
+         [252  "iputs"]
+         [256  "iacall"]
+         [260  "isyscall"]
+         [264  "irntime"]
+         [268  "isframe"]
+         [272  "imreturn"]
+         [276  "itypew"]
+         [280  "itypewc"]
+         [284  "isavtty"]
+         [288  "ifatal"]
+         [292  "igettty"]
+         [296  "ipipe"]
+         [300  "igverr"]
+         [304  "imovstk"]
+         [308  "igetstk"]
+         [312  "uiblock"]
+         [316  "isblock"]
+         [320  "uisblock"]
+         [324  "iassq"]
+         [328  "ilval"]
+         [332  "iset"]
+         [%<- *17777777777* <* 12 512> 19> "spsto"]
+         [%<- *17777777777* <* 12 512> 15> "bindid"]
+         [%<- *17777777777* <* 12 512> 11> "stktop"]
+         [%<- *17777777777* <* 12 512> 7> "stkbot"]
+         [%<- *17777777777* <* 12 512> 3> "intflg"]>>)>
+
+<END-DEFINITIONS>