From c805542b29975b0d9bf3ea324526f62cfe4331bf Mon Sep 17 00:00:00 2001 From: FICTURE7 Date: Mon, 17 May 2021 03:54:53 +0400 Subject: Allow `LocalVariable` to be assigned more than once (#2288) * Allow `LocalVariable` to be assigned more than once This allows us to write flow controls like loops and if-elses with LocalVariables participating in phi nodes. * Add `GetLocalNumber` to operand --- ARMeilleure/IntermediateRepresentation/Operand.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'ARMeilleure/IntermediateRepresentation') diff --git a/ARMeilleure/IntermediateRepresentation/Operand.cs b/ARMeilleure/IntermediateRepresentation/Operand.cs index 7b486c55..ec023939 100644 --- a/ARMeilleure/IntermediateRepresentation/Operand.cs +++ b/ARMeilleure/IntermediateRepresentation/Operand.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Runtime.CompilerServices; namespace ARMeilleure.IntermediateRepresentation @@ -91,6 +92,13 @@ namespace ARMeilleure.IntermediateRepresentation return new Register((int)Value & 0xffffff, (RegisterType)(Value >> 24)); } + public int GetLocalNumber() + { + Debug.Assert(Kind == OperandKind.LocalVariable); + + return (int)Value; + } + public byte AsByte() { return (byte)Value; -- cgit v1.2.3