|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 18432 (0x4800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Machine_Code, seg_04b94f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
package Machine_Code is -- Description for the IBM RS/6000. Version : constant := 57; type Opcode is (A, A_R, A_O, A_O_R, Abs_Op, Abs_R, Abs_O, Abs_O_R, Ae, Ae_R, Ae_O, Ae_O_R, Ai, Ai_R, Ame, Ame_R, Ame_O, Ame_O_R, And_Op, And_R, Andc, Andc_R, Andil_R, Andiu_R, Aze, Aze_R, Aze_O, Aze_O_R, B, Bl, Ba, Bla, Bbt, Bbtl, Bbta, Bbtla, Bbf, Bbfl, Bbfa, Bbfla, Bbtc, Bbfc, Bbtcl, Bbfcl, Bbtr, Bbfr, Bbtrl, Bbfrl, Bc, Bdnge, Bdnle, Bdnne, Bdnns, Bdzge, Bdzle, Bdzne, Bdzns, Bge, Ble, Bne, Bns, Bdnlt, Bdngt, Bdneq, Bdnso, Bdzlt, Bdzgt, Bdzeq, Bdzso, Blt, Bgt, Beq, Bso, Bdn, Bdz, Bca, Bgea, Blea, Bnea, Bnsa, Blta, Bgta, Beqa, Bsoa, Bdna, Bdza, Bcl, Bgel, Blel, Bnel, Bnsl, Bltl, Bgtl, Beql, Bsol, Bdnl, Bdzl, Bcla, Bgela, Blela, Bnela, Bnsla, Bltla, Bgtla, Beqla, Bsola, Bdnla, Bdzla, Bcc, Bgec, Blec, Bnec, Bnsc, Bltc, Bgtc, Beqc, Bsoc, Bctr, Bccl, Bgecl, Blecl, Bnecl, Bnscl, Bltcl, Bgtcl, Beqcl, Bsocl, Bctrl, Bcr, Bger, Bler, Bner, Bnsr, Bltr, Bgtr, Beqr, Bsor, Bdnr, Bdzr, Br, Bcrl, Bgerl, Blerl, Bnerl, Bnsrl, Bltrl, Bgtrl, Beqrl, Bsorl, Bdnrl, Bdzrl, Brl, Cal, Cau, Cax, Cax_R, Cax_O, Cax_O_R, Clcs, Clf, Cli, Cmp, Cmpi, Cmpl, Cmpli, Cntlz, Cntlz_R, Crand, Crandc, Creqv, Crnand, Crnor, Cror, Crorc, Crxor, Dclst, Dclz, Dcs, Div, Div_R, Div_O, Div_O_R, Divs, Divs_R, Divs_O, Divs_O_R, Doz, Doz_R, Doz_O, Doz_O_R, Dozi, Eqv, Eqv_R, Exts, Exts_R, Fa, Fa_R, Fabs, Fabs_R, Fcmpo, Fcmpu, Fd, Fd_R, Fm, Fm_R, Fma, Fma_R, Fmr, Fmr_R, Fms, Fms_R, Fnabs, Fnabs_R, Fneg, Fneg_R, Fnma, Fnma_R, Fnms, Fnms_R, Frsp, Frsp_R, Fs, Fs_R, Ics, L, Lbrx, Lbz, Lbzu, Lbzux, Lbzx, Lfd, Lfdu, Lfdux, Lfdx, Lfs, Lfsu, Lfsux, Lfsx, Lha, Lhau, Lhaux, Lhax, Lhbrx, Lhz, Lhzu, Lhzux, Lhzx, Lil, Liu, Lm, Lscbx, Lscbx_R, Lsi, Lsx, Lu, Lux, Lx, Maskg, Maskg_R, Maskir, Maskir_R, Mcrf, Mcrfs, Mcrxr, Mfcr, Mffs, Mffs_R, Mfmsr, Mfspr, Mfsr, Mfsri, Mr, Mr_R, Mtcr, Mtcrf, Mtfs, Mtfs_R, Mtfsb0, Mtfsb0_R, Mtfsb1, Mtfsb1_R, Mtfsf, Mtfsf_R, Mtfsfi, Mtfsfi_R, Mtmsr, Mtspr, Mtsr, Mtsri, Mul, Mul_R, Mul_O, Mul_O_R, Muli, Muls, Muls_R, Muls_O, Muls_O_R, Nabs, Nabs_R, Nabs_O, Nabs_O_R, Nand, Nand_R, Neg, Neg_R, Neg_O, Neg_O_R, Nop, Nor, Nor_R, Or_Op, Or_R, Orc, Orc_R, Oril, Oriu, Rac, Rac_R, Rfi, Rfsvc, Rlimi, Rlimi_R, Rlinm, Rlinm_R, Rlmi, Rlmi_R, Rlnm, Rlnm_R, Rrib, Rrib_R, Sf, Sf_R, Sf_O, Sf_O_R, Sfe, Sfe_R, Sfe_O, Sfe_O_R, Sfi, Sfme, Sfme_R, Sfme_O, Sfme_O_R, Sfze, Sfze_R, Sfze_O, Sfze_O_R, Si, Si_R, Sl, Sl_R, Sle, Sle_R, Sleq, Sleq_R, Sli, Sli_R, Sliq, Sliq_R, Slliq, Slliq_R, Sllq, Sllq_R, Slq, Slq_R, Sr, Sr_R, Sra, Sra_R, Srai, Srai_R, Sraiq, Sraiq_R, Sraq, Sraq_R, Sre, Sre_R, Srea, Srea_R, Sreq, Sreq_R, Sri, Sri_R, Sriq, Sriq_R, Srliq, Srliq_R, Srlq, Srlq_R, Srq, Srq_R, St, Stb, Stbrx, Stbu, Stbux, Stbx, Stfd, Stfdu, Stfdux, Stfdx, Stfs, Stfsu, Stfsux, Stfsx, Sth, Sthbrx, Sthu, Sthux, Sthx, Stm, Stsi, Stsx, Stu, Stux, Stx, Svc, Svcl, Svca, Svcla, Tlt, Tgt, Teq, Tllt, Tlgt, Tle, Tge, Tne, Tlle, Tlge, Tlne, Tlti, Tgti, Teqi, Tllti, Tlgti, Tlei, Tgei, Tnei, Tllei, Tlgei, Tlnei, Tlbi, Xor_Op, Xor_R, Xoril, Xoriu); type Size is (Byte, Half, Word); type Operand is private; type Operand_Seq is array (Positive range <>) of Operand; Z : Positive; -- -- Instruction formats. -- type Code_0 (Op : Opcode) is record null; end record; type Code_1 (Op : Opcode) is record Oprnd_1 : Operand; end record; type Code_2 (Op : Opcode) is record Oprnd_1 : Operand; Oprnd_2 : Operand; end record; type Code_3 (Op : Opcode) is record Oprnd_1 : Operand; Oprnd_2 : Operand; Oprnd_3 : Operand; end record; type Code_4 (Op : Opcode) is record Oprnd_1 : Operand; Oprnd_2 : Operand; Oprnd_3 : Operand; Oprnd_4 : Operand; end record; type Code_5 (Op : Opcode) is record Oprnd_1 : Operand; Oprnd_2 : Operand; Oprnd_3 : Operand; Oprnd_4 : Operand; Oprnd_5 : Operand; end record; -- -- Data formats. -- type Data_1 (Sz : Size) is record Oprnd_1 : Operand; end record; type Data_N (Sz : Size) is record Oprnd_N : Operand_Seq (1 .. Z); end record; -- -- Call formats. -- type Call_0 is record Subp : Operand; end record; type Call_1 is record Subp : Operand; Oprnd_1 : Operand; end record; type Call_N is record Subp : Operand; Oprnd_N : Operand_Seq (1 .. Z); end record; -- -- Registers. -- -- General Purpose Registers. R0 : constant Operand; R1 : constant Operand; R2 : constant Operand; R3 : constant Operand; R4 : constant Operand; R5 : constant Operand; R6 : constant Operand; R7 : constant Operand; R8 : constant Operand; R9 : constant Operand; R10 : constant Operand; R11 : constant Operand; R12 : constant Operand; R13 : constant Operand; R14 : constant Operand; R15 : constant Operand; R16 : constant Operand; R17 : constant Operand; R18 : constant Operand; R19 : constant Operand; R20 : constant Operand; R21 : constant Operand; R22 : constant Operand; R23 : constant Operand; R24 : constant Operand; R25 : constant Operand; R26 : constant Operand; R27 : constant Operand; R28 : constant Operand; R29 : constant Operand; R30 : constant Operand; R31 : constant Operand; Sp : constant Operand; -- r1 Fp : constant Operand; -- r31 -- Floating Point Registers. Fr0 : constant Operand; Fr1 : constant Operand; Fr2 : constant Operand; Fr3 : constant Operand; Fr4 : constant Operand; Fr5 : constant Operand; Fr6 : constant Operand; Fr7 : constant Operand; Fr8 : constant Operand; Fr9 : constant Operand; Fr10 : constant Operand; Fr11 : constant Operand; Fr12 : constant Operand; Fr13 : constant Operand; Fr14 : constant Operand; Fr15 : constant Operand; Fr16 : constant Operand; Fr17 : constant Operand; Fr18 : constant Operand; Fr19 : constant Operand; Fr20 : constant Operand; Fr21 : constant Operand; Fr22 : constant Operand; Fr23 : constant Operand; Fr24 : constant Operand; Fr25 : constant Operand; Fr26 : constant Operand; Fr27 : constant Operand; Fr28 : constant Operand; Fr29 : constant Operand; Fr30 : constant Operand; Fr31 : constant Operand; -- Storage Control Registers. Sr0 : constant Operand; Sr1 : constant Operand; Sr2 : constant Operand; Sr3 : constant Operand; Sr4 : constant Operand; Sr5 : constant Operand; Sr6 : constant Operand; Sr7 : constant Operand; Sr8 : constant Operand; Sr9 : constant Operand; Sr10 : constant Operand; Sr11 : constant Operand; Sr12 : constant Operand; Sr13 : constant Operand; Sr14 : constant Operand; Sr15 : constant Operand; -- Special Purpose Registers. Mq : constant Operand; Xer : constant Operand; Rtcu : constant Operand; Rtcl : constant Operand; Dec : constant Operand; Lr : constant Operand; Ctr : constant Operand; Tid : constant Operand; Dsisr : constant Operand; Dar : constant Operand; Sdr0 : constant Operand; Sdr1 : constant Operand; Srr0 : constant Operand; Srr1 : constant Operand; -- Condition Register Fields. Cr0 : constant Operand; Cr1 : constant Operand; Cr2 : constant Operand; Cr3 : constant Operand; Cr4 : constant Operand; Cr5 : constant Operand; Cr6 : constant Operand; Cr7 : constant Operand; -- Floating Point Condition Register Fields. Fcr0 : constant Operand; Fcr1 : constant Operand; Fcr2 : constant Operand; Fcr3 : constant Operand; Fcr4 : constant Operand; Fcr5 : constant Operand; Fcr6 : constant Operand; Fcr7 : constant Operand; -- -- Addressing modes. -- function Base (Expr : Operand) return Operand; -- Description: -- The expr denotes the effective address. function "+" (Base : Operand; Disp : Operand) return Operand; function "+" (Base : Operand; Disp : Integer) return Operand; function "-" (Base : Operand; Disp : Integer) return Operand; -- Description: -- Displacement is added to the register to form the address. -- The base operand must be a general register. The disp operand -- can be a signed immediate constant, a label'ref, or external. -- These functions are only allowed in the base function. -- -- Forms: -- reg + const -- reg + label -- reg + ext -- reg + code -- reg - const function Immed (Val : Integer) return Operand; function Immed (Val : Character) return Operand; function "+" (Val : Integer) return Operand; function "-" (Val : Integer) return Operand; -- Description: -- Immediate literal. function Immed (Val : Float) return Operand; function "+" (Val : Float) return Operand; function "-" (Val : Float) return Operand; -- Description: -- Literal float operand denoting an address referencing the value -- placed in a static segment. function Uiu (Val : Integer) return Operand; -- Description: -- High-order 16 bits of 32 bit immediate. function Uil (Val : Integer) return Operand; -- Description: -- Low-order 16 bits of 32 bit immediate. function Siu (Val : Integer) return Operand; -- Description: -- High-order 16 bits, plus the msb bit of the low-order halfword of -- the 32 bit immediate. function Sil (Val : Integer) return Operand; -- Description: -- Low-order 15 bits of 32 bit immediate. function Code (Subp : Operand) return Operand; -- Description: -- Given subp'ref, yields the external symbol referencing the -- machine code of the subprogram. function Ext (Name : Operand; Disp : Integer := 0) return Operand; function Ext (Name : String; Disp : Integer := 0) return Operand; -- Description: -- The name denotes an external symbol. The displacement is added to -- the value of name. function "-" (Left, Right : Operand) return Operand; -- Description: -- Calculates the difference between two labels. private -- -- Implementation specific. -- type Operand is new Integer; -- General Purpose Registers. R0 : constant Operand := 0; R1 : constant Operand := 1; R2 : constant Operand := 2; R3 : constant Operand := 3; R4 : constant Operand := 4; R5 : constant Operand := 5; R6 : constant Operand := 6; R7 : constant Operand := 7; R8 : constant Operand := 8; R9 : constant Operand := 9; R10 : constant Operand := 10; R11 : constant Operand := 11; R12 : constant Operand := 12; R13 : constant Operand := 13; R14 : constant Operand := 14; R15 : constant Operand := 15; R16 : constant Operand := 16; R17 : constant Operand := 17; R18 : constant Operand := 18; R19 : constant Operand := 19; R20 : constant Operand := 20; R21 : constant Operand := 21; R22 : constant Operand := 22; R23 : constant Operand := 23; R24 : constant Operand := 24; R25 : constant Operand := 25; R26 : constant Operand := 26; R27 : constant Operand := 27; R28 : constant Operand := 28; R29 : constant Operand := 29; R30 : constant Operand := 30; R31 : constant Operand := 31; Sp : constant Operand := R1; Fp : constant Operand := R31; -- Floating Point Registers. Fr0 : constant Operand := 32; Fr1 : constant Operand := 33; Fr2 : constant Operand := 34; Fr3 : constant Operand := 35; Fr4 : constant Operand := 36; Fr5 : constant Operand := 37; Fr6 : constant Operand := 38; Fr7 : constant Operand := 39; Fr8 : constant Operand := 40; Fr9 : constant Operand := 41; Fr10 : constant Operand := 42; Fr11 : constant Operand := 43; Fr12 : constant Operand := 44; Fr13 : constant Operand := 45; Fr14 : constant Operand := 46; Fr15 : constant Operand := 47; Fr16 : constant Operand := 48; Fr17 : constant Operand := 49; Fr18 : constant Operand := 50; Fr19 : constant Operand := 51; Fr20 : constant Operand := 52; Fr21 : constant Operand := 53; Fr22 : constant Operand := 54; Fr23 : constant Operand := 55; Fr24 : constant Operand := 56; Fr25 : constant Operand := 57; Fr26 : constant Operand := 58; Fr27 : constant Operand := 59; Fr28 : constant Operand := 60; Fr29 : constant Operand := 61; Fr30 : constant Operand := 62; Fr31 : constant Operand := 63; -- Storage Control Registers. Sr0 : constant Operand := 64; Sr1 : constant Operand := 65; Sr2 : constant Operand := 66; Sr3 : constant Operand := 67; Sr4 : constant Operand := 68; Sr5 : constant Operand := 69; Sr6 : constant Operand := 70; Sr7 : constant Operand := 71; Sr8 : constant Operand := 72; Sr9 : constant Operand := 73; Sr10 : constant Operand := 74; Sr11 : constant Operand := 75; Sr12 : constant Operand := 76; Sr13 : constant Operand := 77; Sr14 : constant Operand := 78; Sr15 : constant Operand := 79; -- Special Purpose Registers. Mq : constant Operand := 80; Xer : constant Operand := 81; Rtcu : constant Operand := 82; Rtcl : constant Operand := 83; Dec : constant Operand := 84; Lr : constant Operand := 85; Ctr : constant Operand := 86; Tid : constant Operand := 87; Dsisr : constant Operand := 88; Dar : constant Operand := 89; Sdr0 : constant Operand := 90; Sdr1 : constant Operand := 91; Srr0 : constant Operand := 92; Srr1 : constant Operand := 93; -- Condition Register Fields. Cr0 : constant Operand := 94; Cr1 : constant Operand := 95; Cr2 : constant Operand := 96; Cr3 : constant Operand := 97; Cr4 : constant Operand := 98; Cr5 : constant Operand := 99; Cr6 : constant Operand := 100; Cr7 : constant Operand := 101; -- Floating Point Condition Register Fields. Fcr0 : constant Operand := 102; Fcr1 : constant Operand := 103; Fcr2 : constant Operand := 104; Fcr3 : constant Operand := 105; Fcr4 : constant Operand := 106; Fcr5 : constant Operand := 107; Fcr6 : constant Operand := 108; Fcr7 : constant Operand := 109; end Machine_Code; pragma Built_In (Machine_Code);
nblk1=11 nid=0 hdr6=22 [0x00] rec0=13 rec1=00 rec2=01 rec3=01e [0x01] rec0=0c rec1=00 rec2=02 rec3=09a [0x02] rec0=0d rec1=00 rec2=03 rec3=076 [0x03] rec0=0d rec1=00 rec2=04 rec3=050 [0x04] rec0=2c rec1=00 rec2=05 rec3=032 [0x05] rec0=32 rec1=00 rec2=06 rec3=020 [0x06] rec0=23 rec1=00 rec2=07 rec3=040 [0x07] rec0=22 rec1=00 rec2=08 rec3=040 [0x08] rec0=23 rec1=00 rec2=09 rec3=02e [0x09] rec0=25 rec1=00 rec2=0a rec3=00c [0x0a] rec0=23 rec1=00 rec2=0b rec3=028 [0x0b] rec0=20 rec1=00 rec2=0c rec3=070 [0x0c] rec0=24 rec1=00 rec2=0d rec3=022 [0x0d] rec0=1e rec1=00 rec2=0e rec3=022 [0x0e] rec0=1d rec1=00 rec2=0f rec3=00c [0x0f] rec0=1d rec1=00 rec2=10 rec3=042 [0x10] rec0=11 rec1=00 rec2=11 rec3=001 tail 0x21750b8ac8684354c4f41 0x42a00088462060003