add /spim
This commit is contained in:
parent
1f8e6c916a
commit
ff6e15ec3a
3 changed files with 116 additions and 0 deletions
66
spim/include/u.h
Normal file
66
spim/include/u.h
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#define nil ((void*)0)
|
||||||
|
typedef unsigned short ushort;
|
||||||
|
typedef unsigned char uchar;
|
||||||
|
typedef unsigned long ulong;
|
||||||
|
typedef unsigned int uint;
|
||||||
|
typedef signed char schar;
|
||||||
|
typedef long long vlong;
|
||||||
|
typedef unsigned long long uvlong;
|
||||||
|
typedef unsigned long uintptr;
|
||||||
|
typedef unsigned long usize;
|
||||||
|
typedef uint Rune;
|
||||||
|
typedef union FPdbleword FPdbleword;
|
||||||
|
typedef long jmp_buf[2];
|
||||||
|
#define JMPBUFSP 0
|
||||||
|
#define JMPBUFPC 1
|
||||||
|
#define JMPBUFDPC 0
|
||||||
|
typedef unsigned int mpdigit; /* for /sys/include/mp.h */
|
||||||
|
typedef unsigned char u8int;
|
||||||
|
typedef unsigned short u16int;
|
||||||
|
typedef unsigned int u32int;
|
||||||
|
typedef unsigned long long u64int;
|
||||||
|
|
||||||
|
/* FCR */
|
||||||
|
#define FPINEX (1<<7)
|
||||||
|
#define FPUNFL (1<<8)
|
||||||
|
#define FPOVFL (1<<9)
|
||||||
|
#define FPZDIV (1<<10)
|
||||||
|
#define FPINVAL (1<<11)
|
||||||
|
#define FPRNR (0<<0)
|
||||||
|
#define FPRZ (1<<0)
|
||||||
|
#define FPRPINF (2<<0)
|
||||||
|
#define FPRNINF (3<<0)
|
||||||
|
#define FPRMASK (3<<0)
|
||||||
|
#define FPPEXT 0
|
||||||
|
#define FPPSGL 0
|
||||||
|
#define FPPDBL 0
|
||||||
|
#define FPPMASK 0
|
||||||
|
/* FSR */
|
||||||
|
#define FPAINEX (1<<2)
|
||||||
|
#define FPAOVFL (1<<4)
|
||||||
|
#define FPAUNFL (1<<3)
|
||||||
|
#define FPAZDIV (1<<5)
|
||||||
|
#define FPAINVAL (1<<6)
|
||||||
|
union FPdbleword
|
||||||
|
{
|
||||||
|
double x;
|
||||||
|
struct { /* big endian */
|
||||||
|
ulong hi;
|
||||||
|
ulong lo;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* stdarg */
|
||||||
|
typedef char* va_list;
|
||||||
|
#define va_start(list, start) list =\
|
||||||
|
(sizeof(start) < 4?\
|
||||||
|
(char*)((int*)&(start)+1):\
|
||||||
|
(char*)(&(start)+1))
|
||||||
|
#define va_end(list)\
|
||||||
|
USED(list)
|
||||||
|
#define va_arg(list, mode)\
|
||||||
|
((sizeof(mode) == 1)?\
|
||||||
|
((list += 4), (mode*)list)[-1]:\
|
||||||
|
(sizeof(mode) == 2)?\
|
||||||
|
((list += 4), (mode*)list)[-1]:\
|
||||||
|
((list += sizeof(mode)), (mode*)list)[-1])
|
44
spim/include/ureg.h
Normal file
44
spim/include/ureg.h
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
struct Ureg
|
||||||
|
{
|
||||||
|
ulong status;
|
||||||
|
ulong pc;
|
||||||
|
union{
|
||||||
|
ulong sp; /* r29 */
|
||||||
|
ulong usp; /* r29 */
|
||||||
|
};
|
||||||
|
ulong cause;
|
||||||
|
ulong badvaddr;
|
||||||
|
ulong tlbvirt;
|
||||||
|
ulong hi;
|
||||||
|
ulong lo;
|
||||||
|
ulong r31;
|
||||||
|
ulong r30;
|
||||||
|
ulong r28;
|
||||||
|
ulong r27; /* unused */
|
||||||
|
ulong r26; /* unused */
|
||||||
|
ulong r25;
|
||||||
|
ulong r24;
|
||||||
|
ulong r23;
|
||||||
|
ulong r22;
|
||||||
|
ulong r21;
|
||||||
|
ulong r20;
|
||||||
|
ulong r19;
|
||||||
|
ulong r18;
|
||||||
|
ulong r17;
|
||||||
|
ulong r16;
|
||||||
|
ulong r15;
|
||||||
|
ulong r14;
|
||||||
|
ulong r13;
|
||||||
|
ulong r12;
|
||||||
|
ulong r11;
|
||||||
|
ulong r10;
|
||||||
|
ulong r9;
|
||||||
|
ulong r8;
|
||||||
|
ulong r7;
|
||||||
|
ulong r6;
|
||||||
|
ulong r5;
|
||||||
|
ulong r4;
|
||||||
|
ulong r3;
|
||||||
|
ulong r2;
|
||||||
|
ulong r1;
|
||||||
|
};
|
6
spim/mkfile
Normal file
6
spim/mkfile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
</sys/src/mkfile.proto
|
||||||
|
|
||||||
|
CC=0c
|
||||||
|
LD=0l
|
||||||
|
O=0
|
||||||
|
AS=0a
|
Loading…
Reference in a new issue