Example #1
0
        public void Reset(ILGenerator ilgen, int startAddress)
        {
            ILGen            = ilgen;
            StartAddress     = startAddress;
            EndAddress       = startAddress;
            InstructionCount = 0;

            WriteBranchTable = false;
            BranchTable.Clear();

            UseCore     = false;
            UseMemory   = false;
            UseSyscalls = false;
            UpdatePc    = false;

            for (int n = 0; n < ReadRegisters.Length; n++)
            {
                ReadRegisters[n]  = false;
                WriteRegisters[n] = false;
                Registers[n]      = -1;
            }

            BranchLabels.Clear();
            LastBranchTarget = 0;
            BranchTarget     = null;

            RegisterCount = 0;
            TempBase      = 0;
        }
Example #2
0
		public static void DefineBranchTarget( GenerationContext context, int target )
		{
			if( context.BranchLabels.ContainsKey( target ) == false )
			{
				//Debug.WriteLine( string.Format( "Defining branch target {0:X8}", target ) );
				LabelMarker lm = new LabelMarker( target );
				context.BranchLabels.Add( target, lm );
			}
			if( context.LastBranchTarget < target )
				context.LastBranchTarget = target;
		}
        public void Reset( ILGenerator ilgen, int startAddress )
        {
            ILGen = ilgen;
            StartAddress = startAddress;
            EndAddress = startAddress;
            InstructionCount = 0;

            WriteBranchTable = false;
            BranchTable.Clear();

            UseCore = false;
            UseMemory = false;
            UseSyscalls = false;
            UpdatePc = false;

            for( int n = 0; n < ReadRegisters.Length; n++ )
            {
                ReadRegisters[ n ] = false;
                WriteRegisters[ n ] = false;
                Registers[ n ] = -1;
            }

            BranchLabels.Clear();
            LastBranchTarget = 0;
            BranchTarget = null;

            RegisterCount = 0;
            TempBase = 0;
        }