summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu/access_control/gdt.txt2
-rw-r--r--cpu/instructions/overview.txt8
2 files changed, 10 insertions, 0 deletions
diff --git a/cpu/access_control/gdt.txt b/cpu/access_control/gdt.txt
index b129e05..a669dc4 100644
--- a/cpu/access_control/gdt.txt
+++ b/cpu/access_control/gdt.txt
@@ -68,3 +68,5 @@ permissions required: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
permissions not allowed: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0
must not have 1st or 2nd permission to use this segment
+
+Access MUST be checked prior to any action, speculative or otherwise
diff --git a/cpu/instructions/overview.txt b/cpu/instructions/overview.txt
index 95b0034..9708e27 100644
--- a/cpu/instructions/overview.txt
+++ b/cpu/instructions/overview.txt
@@ -5,7 +5,11 @@ Dynamic VLIW
`mov R0, R1` and `mov R1, R0` put into the same queue will result in swapping R0 and R1
If any exception occurs during the execution of the queued instructions, all output will be discarded
+
If multiple exceptions would have theoretically occurred, which one is triggered is undefined
+ If outputs from multiple instructions overlap, which one is written to the overlapping area is undefined
+ If an exception would be generated by attempting to write one value there but not the other, the exception might not occur if the other value is what is written in the end
+ This includes indirect writes via instructions such as `jmp` and `push`
Current format ideas:
A)
@@ -39,3 +43,7 @@ Dynamic VLIW
opcode
parameters
immediate references
+
+ A minimum of <n> instructions must be accepted by all CPUs
+ TODO: define n
+ Specific implementations may accept more, up to the maximum specifiable by the format