Andrew Waterman
f6659f1c76
Make printk safer and use less stack
11 years ago
Andrew Waterman
6517fe26a2
Update to new privileged spec
11 years ago
Andrew Waterman
5c86450130
work in progress on new supervisor spec
11 years ago
Andrew Waterman
069bdd3f0d
Implement draft of new calling convention
Here is the new syscall ABI:
syscall number in a7
args in a0 - a6
return value in a0
Here is the integer register map:
x0 -> x0
x1 -> ra
x2 -> sp
x3 -> tp
x4 -> gp
x5 -> t0
x6 -> t1
x7 -> t2
x8 -> s0
x9 -> s1
x10 -> a0
x11 -> a1
x12 -> a2
x13 -> a3
x14 -> a4
x15 -> a5
x16 -> a6
x17 -> a7
x18 -> s2
x19 -> s3
x20 -> s4
x21 -> s5
x22 -> s6
x23 -> s7
x24 -> s8
x25 -> s9
x26 -> s10
x27 -> s11
x28 -> t3
x29 -> t4
x30 -> t5
x31 -> t6
12 years ago
Andrew Waterman
33a258dd76
Use new ABI register names
13 years ago
Andrew Waterman
cc72987e65
Support Linux ABI and (optionally) virtual memory
13 years ago
Andrew Waterman
276c20be4c
implement new register mapping
13 years ago
Andrew Waterman
accebe9e63
add BSD license
13 years ago
Andrew Waterman
e0e1662fc1
rename binary to pk; change argv handling
the new fesvr approach makes argv[0] = pk, rather than user program's name
13 years ago
Andrew Waterman
15f31b5404
new supervisor mode
14 years ago
Andrew Waterman
8717517e04
Synced up PK with supervisor changes/asm syntax
You must upgrade to the latest compiler and ISA
simulator to build and run this version of the PK.
15 years ago
Andrew Waterman
0edaecc543
temporary undoing of renaming
15 years ago
Andrew Waterman
e63e4fbe87
Renamed packages
15 years ago
Andrew Waterman
6b9ea8b8e0
[pk] limit programs to 2GB (for RV32 simplicity)
15 years ago
Andrew Waterman
0d603acb91
[pk] load pk at addr 0; user stack top = MEMSIZE
15 years ago
Andrew Waterman
69ddca76d2
[pk] add cache flush after program load
15 years ago
Andrew Waterman
53eb346e31
[sim,pk] reorganized status register
15 years ago
Andrew Waterman
6e7fe98ea9
[xcc,pk,sim,opcodes] added first RVC instruction
15 years ago
Andrew Waterman
666ae0c9e5
[pk,fesvr] pk now loads elfs itself
this allows it to detect 32b binaries
15 years ago
Andrew Waterman
5490b1d627
[pk] send stdout/stderr to both fesvr and debug console
15 years ago
Andrew Waterman
63729473a5
[opcodes, pk, sim, xcc] Tweaked FP encoding
16 years ago
Andrew Waterman
783c0ec831
[pk] various PK cleanups/speedups
16 years ago
Andrew Waterman
4daccfc1cf
[xcc, sim, pk] link register is now x1
16 years ago
Yunsup Lee
9fe7d4f656
[pk,sim,xcc] get rid of at register, introduce tp register
16 years ago
Andrew Waterman
77c382ff23
[pk] improved performance of fp emulation
16 years ago
Yunsup Lee
9297008e44
[pk] zero out fp regs
16 years ago
Andrew Waterman
b4fd490d68
[pk, sim] added FPU emulation support to proxy kernel
16 years ago
Andrew Waterman
dd84f5743d
[pk] proxy kernel support for mixed 32b/64b operation
16 years ago
Andrew Waterman
29cc0dc985
[pk,fesvr] improved proxykernel build system
Now uses a modified MCPPBS. Add --host=riscv to configure path.
Front-end server now just searches PATH for riscv-pk, so just install the pk
to somewhere in your path.
16 years ago
Andrew Waterman
e0d20b2e2d
[xcc,pk,sim] Added first part of FP support
In particular, FP loads, stores, and moves now work.
16 years ago
Yunsup Lee
8b9b445a19
[fesvr,pk,xcc] support argc and argv
16 years ago
Andrew Waterman
7fa95f96af
[pk,libgloss] added more front-end system calls
16 years ago
Andrew Waterman
263c2ff7d8
[pk,sim] added temporary "exit" functionality
16 years ago
Andrew Waterman
9c43984729
Reorganized directory structure
Moved cross-compiler to /xcc/ rather than /
Added ISA sim in /sim/
Added Proxy Kernel in /pk/ (to be cleaned up)
Added opcode map to /opcodes/ (ditto)
Added documentation to /doc/
16 years ago