Update spec and register offset for interrupts
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
10
vm.md
10
vm.md
@@ -228,16 +228,15 @@ wrapping around to 0.
|
||||
* Push the IP of the next instruction to be called
|
||||
* Push the FLAGS register
|
||||
* Push the STATUS register
|
||||
* Push the R0 register
|
||||
* Push the R1 register
|
||||
* Push the R0-R31 registers
|
||||
* Update the IP (i.e., jump) to the address of the given interrupt vector in the IVT
|
||||
* Update the R0 register to the value in the first parameter
|
||||
* Update the R1 register to the value in the second parameter
|
||||
* Update the frame pointer to the current stack pointer - 48
|
||||
* Update the frame pointer to the current stack pointer - 288
|
||||
* IRet
|
||||
* Opcode: 0x3005
|
||||
* When this instruction is executed, these actions occur:
|
||||
* Update the stack pointer to the current frame pointer + 48
|
||||
* Update the stack pointer to the current frame pointer + 288
|
||||
* Pop the old R1 value
|
||||
* Pop the old R0 value
|
||||
* Pop the old STATUS value
|
||||
@@ -410,8 +409,9 @@ A VM must provide support for the following meta-values:
|
||||
|
||||
# General TODO
|
||||
|
||||
* Memory permissions
|
||||
* MMIO regions
|
||||
* Paging?
|
||||
* Paging
|
||||
* Determine how address sizes are determined
|
||||
* source size <= dest size - zero extend source and copy
|
||||
* mov %r0, (label)u32
|
||||
|
||||
Reference in New Issue
Block a user