Andrew Waterman
47a2e87ccd
Support CFI shadow stacks via --zicfiss command-line arg
2 years ago
Ming-Yi Lai
a227544788
Zicfilp: Handle software check exception -- landing pad fault
2 years ago
Andrew Waterman
4f1e335585
pk: make breakpoints fatal
Resolves #216
5 years ago
Andrew Waterman
fe4118a691
pk: remove vestigial trapframe_t::insn field
This assumes that stval is populated with the opcode on illegal
instruction exceptions. But since we're only using the opcode for
error reporting, it's OK if this assumption is violated.
5 years ago
Andrew Waterman
b9eba474fb
pk: support >2 GiB of user memory for RV64
Previously, the pk would always run from virtual address MEM_START.
Instead, remap it into the negative virtual addresses, allowing user
processes to expand beyond MEM_START.
5 years ago
wxjstz
41ff94a84c
Add some exception handling functions to s-mode to handle exception return from m-mode. ( #117 )
8 years ago
Andrew Waterman
3473915b3a
Separate page faults from physical memory access exceptions
9 years ago
Andrew Waterman
d88671efdf
Remove uarch counters
We'll re-add support for the generic performance counter facility once
it exists.
10 years ago
Andrew Waterman
ee00503ebe
Don't assume existence of uarch counters
10 years ago
Andrew Waterman
b94c7a4b07
Refactor pk, bbl, machine into separate libraries
Yuck.
10 years ago
Andrew Waterman
ef524be394
S-mode shouldn't ever see misaligned load traps
10 years ago
Andrew Waterman
ad7a60abea
WIP on priv spec v1.9
10 years ago
Andrew Waterman
027ba300cb
Use sbadaddr (not sepc) to resolve instruction page faults
11 years ago
Andrew Waterman
1a8572a47d
Upgrade to privileged architecture 1.7
11 years ago
Andrew Waterman
e474878db4
Fix stack discipline for recursive traps
11 years ago
Andrew Waterman
a79f62f72a
Merge [shm]call into ecall, [shm]ret into eret
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
fda0d85ae4
Don't rely on the C library
12 years ago
Christopher Celio
7b6a968c83
Changes to allow spike & RTL behavior to better match each other.
- EI turned off on sys_exit.
- IM/IP cleared on start.
- badvaddr only saved to tf on page faults.
12 years ago
Christopher Celio
75bc78fac8
PK now advances past breakpoint.
12 years ago
Andrew Waterman
f1f8dbbed0
Abandon MIPS convention for indicating syscall errors in register a3
12 years ago
Andrew Waterman
89a0cefd28
Add -p flag: force physical memory addressing
12 years ago
Andrew Waterman
f62e692e72
Update to new privileged ISA
13 years ago
Yunsup Lee
43c14ea417
sync pcr.h, correctly name SR_EA
13 years ago
Andrew Waterman
186ae3cc35
Renumber PCRs; refer to them with new ASM syntax
13 years ago
Andrew Waterman
3168b8a904
New supervisor mode
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
Christopher Celio
d6a522404a
Added rough emulation support for div/rem/mul.
14 years ago
Andrew Waterman
6336ef155f
fix FP emulation routines
to disable, add --disable-fp-emulation to configure command line
14 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
Yunsup Lee
92a8f05f5a
[opcodes,pk,sim] add more vector traps (for #banks, illegal instructions)
15 years ago
Andrew Waterman
bbd999a00e
[sim,pk] cleanups & initial virtual memory support
15 years ago
Andrew Waterman
0be1f5eb1b
[pk] fixed timer interrupt handler, etc.
15 years ago
Andrew Waterman
ba0cf05466
[pk] fixed timer interrupt bug, etc.
15 years ago
Andrew Waterman
27afdf1a00
[sim,pk] fixed minor pk bugs and trap codes
15 years ago
Yunsup Lee
5e7e315dee
[pk] fix init_fp function prototype
15 years ago
Yunsup Lee
033e1e62bd
[pk] add vector_disabled trap handler
15 years ago
Andrew Waterman
4baf0c99c5
[xcc,pk,opcodes,sim] updated encoding/insn names
15 years ago
Andrew Waterman
5c9d48945e
[sim,pk] added interrupt-pending field to cause reg
15 years ago
Andrew Waterman
af2d471a4e
[pk] fixed FP emulation bug
kernel would erroneously trap on FP disabled
15 years ago
Andrew Waterman
0cf0242c3b
[pk] added --disable-fp-emulation option for code size
15 years ago
Andrew Waterman
77c382ff23
[pk] improved performance of fp emulation
16 years ago