From 353fbfd2b04ea57ceef1c6e97c1aad2d20c0e6a2 Mon Sep 17 00:00:00 2001 From: Marcel Koester Date: Thu, 26 Jan 2023 20:48:41 +0100 Subject: [PATCH] Extended ILEmitter by adding a new WriteLine instruction for debugging. --- Src/ILGPU/Backends/IL/ILEmitter.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Src/ILGPU/Backends/IL/ILEmitter.cs b/Src/ILGPU/Backends/IL/ILEmitter.cs index 050e3ec5f3..93fb92207f 100644 --- a/Src/ILGPU/Backends/IL/ILEmitter.cs +++ b/Src/ILGPU/Backends/IL/ILEmitter.cs @@ -234,6 +234,12 @@ public interface IILEmitter /// The jump targets. void EmitSwitch(ILLabel[] labels); + /// + /// Emits code to write something to the console. + /// + /// The message to write. + void EmitWriteLine(string message); + /// /// Finishes the code generation process. /// @@ -405,6 +411,10 @@ public void EmitSwitch(params ILLabel[] labels) Generator.Emit(OpCodes.Switch, switchLabels); } + /// + public void EmitWriteLine(string message) => + Generator.EmitWriteLine(message); + /// public void Finish() { } @@ -635,6 +645,10 @@ public void EmitSwitch(params ILLabel[] labels) } } + /// + public void EmitWriteLine(string message) => + Writer.WriteLine($" => Write('{message}')"); + /// public void Finish() { @@ -717,6 +731,9 @@ public void EmitConstant(double constant) { } /// public void EmitSwitch(params ILLabel[] labels) { } + /// + public void EmitWriteLine(string message) { } + /// public void Finish() { }