From 32d34b9283f420dd6888afb82df61d5c61bc2434 Mon Sep 17 00:00:00 2001 From: Elyan Date: Thu, 31 Oct 2024 15:09:49 +0100 Subject: [PATCH] Added details for subsystem register sr0: Simulation Control --- src/execution-engine-spec/subsystems.adoc | 9 ++++++--- src/execution-engine-spec/system-behavior.adoc | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/execution-engine-spec/subsystems.adoc b/src/execution-engine-spec/subsystems.adoc index dccfa7f..dd84c11 100644 --- a/src/execution-engine-spec/subsystems.adoc +++ b/src/execution-engine-spec/subsystems.adoc @@ -40,7 +40,7 @@ The {central-arch-name} allows up to 16 subystem identifiers. Not all of these i ===== sr0: Simulation Control The Simulation Control register is a register that is 32-bits wide. It is accessible in unprivileged and privileged modes. -Writing to it is only possible when the _Execution Engine_ in which the software executes is being simulated. Real hardware should generate an *UnknownInstr* exception if it happens. +Writing to it is only possible when the _Execution Engine_ in which the software executes is being simulated. Real hardware should generate an *PrivFault* exception if it happens. [source] ---- @@ -50,6 +50,9 @@ ssw ss3, r0, sr0, 0 <2> <1> Read the Simulation Control register. <2> Write in the Simulation Control register. -The register contains the value 1 when under simulation and 0 otherwise. -Writing any value to it while under simulation has the effect of ending the simulation. +The register contains the value 1 if under simulation and 0 otherwise. + +Writing a value to it while under simulation has the effect of ending the simulation: + +* Writing 0 ends the simulation normaly +* Writing any other value ends the simulation with an error diff --git a/src/execution-engine-spec/system-behavior.adoc b/src/execution-engine-spec/system-behavior.adoc index 323f7e7..560f49f 100644 --- a/src/execution-engine-spec/system-behavior.adoc +++ b/src/execution-engine-spec/system-behavior.adoc @@ -18,11 +18,11 @@ The _Execution Engine_ starts execution in Supervisor mode. |N/A |pc_user, pc_fault -|0x0000_0004 +|0x0000_0000 |#TODO: Describe it# |pc_svc -|0x0000_0000 +|0x0000_0004 |#TODO: Describe it# |psr