aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Instruction
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-05-26 17:49:21 -0300
committergdkchan <gab.dark.100@gmail.com>2018-05-26 17:50:47 -0300
commit9670c096e410add36314a247b77334c0c1d61256 (patch)
treedc66ff6966b5544ee78e45b571c187225f96c35d /ChocolArm64/Instruction
parentcb1cf489f96b09872f8a9db41226c6f5d1654575 (diff)
Initial work to support AArch32 with a interpreter, plus nvmm stubs (not used for now)
Diffstat (limited to 'ChocolArm64/Instruction')
-rw-r--r--ChocolArm64/Instruction/AInst.cs14
-rw-r--r--ChocolArm64/Instruction/AInstInterpreter.cs8
2 files changed, 16 insertions, 6 deletions
diff --git a/ChocolArm64/Instruction/AInst.cs b/ChocolArm64/Instruction/AInst.cs
index cab597d6..74093536 100644
--- a/ChocolArm64/Instruction/AInst.cs
+++ b/ChocolArm64/Instruction/AInst.cs
@@ -4,15 +4,17 @@ namespace ChocolArm64.Instruction
{
struct AInst
{
- public AInstEmitter Emitter { get; private set; }
- public Type Type { get; private set; }
+ public AInstInterpreter Interpreter { get; private set; }
+ public AInstEmitter Emitter { get; private set; }
+ public Type Type { get; private set; }
- public static AInst Undefined => new AInst(AInstEmit.Und, null);
+ public static AInst Undefined => new AInst(null, AInstEmit.Und, null);
- public AInst(AInstEmitter Emitter, Type Type)
+ public AInst(AInstInterpreter Interpreter, AInstEmitter Emitter, Type Type)
{
- this.Emitter = Emitter;
- this.Type = Type;
+ this.Interpreter = Interpreter;
+ this.Emitter = Emitter;
+ this.Type = Type;
}
}
} \ No newline at end of file
diff --git a/ChocolArm64/Instruction/AInstInterpreter.cs b/ChocolArm64/Instruction/AInstInterpreter.cs
new file mode 100644
index 00000000..6a855aec
--- /dev/null
+++ b/ChocolArm64/Instruction/AInstInterpreter.cs
@@ -0,0 +1,8 @@
+using ChocolArm64.Decoder;
+using ChocolArm64.Memory;
+using ChocolArm64.State;
+
+namespace ChocolArm64.Instruction
+{
+ delegate void AInstInterpreter(AThreadState State, AMemory Memory, AOpCode OpCode);
+} \ No newline at end of file