Get register value (bounds-checked).
9.10. Instruction Execution (Appendix A.6)
Set register value (bounds-checked). Returns new register file.
Jar.JAVM.nextPC (pc skip : Nat) : NatJar.JAVM.nextPC (pc skip : Nat) : Nat
Compute next PC (default: advance past current instruction).
Jar.JAVM.opcodeName (op : Nat) : StringJar.JAVM.opcodeName (op : Nat) : String
Human-readable opcode name for tracing.
Jar.JAVM.StepResult : TypeJar.JAVM.StepResult : Type
Result of executing one instruction step.
Constructors
«continue» (pc : Nat) (regs : Jar.JAVM.Registers) (mem : Jar.JAVM.Memory) : Jar.JAVM.StepResult
Continue execution: new PC, updated registers, updated memory.
halt : Jar.JAVM.StepResult
Halt normally.
trap : Jar.JAVM.StepResult
Deliberate trap (opcode 0).
panic : Jar.JAVM.StepResult
Runtime panic (bad djump, invalid opcode, etc.).
fault (addr : UInt64) : Jar.JAVM.StepResult
Page fault at address.
hostCall (id : UInt64) (regs : Jar.JAVM.Registers) (mem : Jar.JAVM.Memory) (nextPC : Nat) : Jar.JAVM.StepResult
Host call with function ID and next PC for resumption (ecalli).
ecall (regs : Jar.JAVM.Registers) (mem : Jar.JAVM.Memory) (nextPC : Nat) : Jar.JAVM.StepResult
Management op / dynamic CALL (ecall opcode 3). φ[11]=op, φ[12]=subject|object.
Jar.JAVM.executeStep (prog : Jar.JAVM.ProgramBlob) (pc : Nat) (regs : Jar.JAVM.Registers) (mem : Jar.JAVM.Memory) : Jar.JAVM.StepResultJar.JAVM.executeStep (prog : Jar.JAVM.ProgramBlob) (pc : Nat) (regs : Jar.JAVM.Registers) (mem : Jar.JAVM.Memory) : Jar.JAVM.StepResult
Execute one PVM instruction. GP Appendix A. Takes current state, returns step result.