Annotation of lucent/sys/src/libmach/2.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * 68020 definition
                      3:  */
                      4: #include <u.h>
                      5: #include "/68020/include/ureg.h"
                      6: #include <bio.h>
                      7: #include <mach.h>
                      8: 
                      9: #define        MAXREG  0
                     10: #define        MINREG  0
                     11: 
                     12: /*
                     13:  * 68020 register offsets relative to beginning of ublock
                     14:  */
                     15: #define        USIZE           8192            /* size of the user block */
                     16: #define        UREG(x)         (USIZE-(2+4+2+(8+8+1+1)*4)+(ulong)(x))
                     17: #define        FCTL(x)         (0x0000+4+216+(x)*4)
                     18: #define        FREG(x)         (0x0000+4+216+12+(x)*12)
                     19: #define        SCALLOFF        (0x0000+4+216+108)
                     20: 
                     21: #define        REGOFF(x)       (UREG(&((struct Ureg *) 0)->x))
                     22: 
                     23: #define        VO      REGOFF(vo)              /* vo, 2 bytes */
                     24: #define        SR      REGOFF(sr)              /* sr, 2 bytes */
                     25: 
                     26: #define        R0      REGOFF(r0)
                     27: #define        PC      REGOFF(pc)
                     28: #define        DBMAGIC REGOFF(magic)
                     29: #define        SP      REGOFF(usp)
                     30: 
                     31: /*
                     32:  *     68020 register set
                     33:  */
                     34: Reglist m68020reglist[] = {
                     35:        {"VO",          VO,             RINT,   'x'},
                     36:        {"SR",          SR,             RINT,   'x'},
                     37:        {"MAGIC",       DBMAGIC,        RINT,   'X'},
                     38:        {"PC",          PC,             RINT,   'X'},
                     39:        {"A7",          SP,             RINT,   'X'},
                     40:        {"KSP",         REGOFF(sp),     RINT,   'X'},
                     41:        {"A6",          REGOFF(a6),     RINT,   'X'},
                     42:        {"A5",          REGOFF(a5),     RINT,   'X'},
                     43:        {"A4",          REGOFF(a4),     RINT,   'X'},
                     44:        {"A3",          REGOFF(a3),     RINT,   'X'},
                     45:        {"A2",          REGOFF(a2),     RINT,   'X'},
                     46:        {"A1",          REGOFF(a1),     RINT,   'X'},
                     47:        {"A0",          REGOFF(a0),     RINT,   'X'},
                     48:        {"R7",          REGOFF(r7),     RINT,   'X'},
                     49:        {"R6",          REGOFF(r6),     RINT,   'X'},
                     50:        {"R5",          REGOFF(r5),     RINT,   'X'},
                     51:        {"R4",          REGOFF(r4),     RINT,   'X'},
                     52:        {"R3",          REGOFF(r3),     RINT,   'X'},
                     53:        {"R2",          REGOFF(r2),     RINT,   'X'},
                     54:        {"R1",          REGOFF(r1),     RINT,   'X'},
                     55:        {"R0",          REGOFF(r0),     RINT,   'X'},
                     56:        {"FPCR",        FCTL(0),        RFLT,   'X'},
                     57:        {"FPSR",        FCTL(1),        RFLT,   'X'},
                     58:        {"FPIAR",       FCTL(2),        RFLT,   'X'},
                     59:        {"F0",          FREG(0),        RFLT,   '8'},
                     60:        {"F1",          FREG(1),        RFLT,   '8'},
                     61:        {"F2",          FREG(2),        RFLT,   '8'},
                     62:        {"F3",          FREG(3),        RFLT,   '8'},
                     63:        {"F4",          FREG(4),        RFLT,   '8'},
                     64:        {"F5",          FREG(5),        RFLT,   '8'},
                     65:        {"F6",          FREG(6),        RFLT,   '8'},
                     66:        {"F7",          FREG(7),        RFLT,   '8'},
                     67:        {0}
                     68: };
                     69: 
                     70: Mach m68020 =
                     71: {
                     72:        "68020",
                     73:        M68020,         /* machine type */
                     74:        m68020reglist,  /* register list */
                     75:        MINREG,         /* minimum register */
                     76:        MAXREG,         /* maximum register */
                     77:        "PC",
                     78:        "A7",
                     79:        0,              /* link register */
                     80:        R0,             /* return register */
                     81:        0x2000,         /* page size */
                     82:        0x80000000,     /* kernel base */
                     83:        0,              /* kernel text mask */
                     84:        0,              /* offset of ksp in /proc/proc */
                     85:        4,              /* correction to ksp value */
                     86:        4,              /* offset of kpc in /proc/proc */
                     87:        0,              /* correction to kpc value */
                     88:        SCALLOFF,       /* offset in ublk of syscall #*/
                     89:        2,              /* quantization of pc */
                     90:        "a6base",       /* static base register name */
                     91:        0,              /* value */
                     92:        4,              /* szaddr */
                     93:        4,              /* szreg */
                     94:        4,              /* szfloat */
                     95:        8,              /* szdouble */
                     96: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.