Example #1
0
        /// <summary>Risc-V CPU例外のインスタンスを初期化します</summary>
        public RiscvException(RiscvExceptionCause cause, UInt32 tval, RV32_RegisterSet reg) : base(Enum.GetName(typeof(RiscvExceptionCause), cause))
        {
            // nullチェック
            if (reg is null)
            {
                throw new ArgumentNullException("reg");
            }

            Data.Add("pc", reg.PC);
            Data.Add("cause", cause);
            Data.Add("tval", tval);
            reg.HandleException(cause, tval);
        }
Example #2
0
        /// <summary>指定したメッセージおよびこの例外の原因となった内部例外への参照を使用して、Risc-V CPU例外のインスタンスを初期化します</summary>
        /// <param name="message">エラーを説明するメッセージ</param>
        /// <param name="innerException">現在の例外の原因である例外</param>
        public RiscvException(RiscvExceptionCause cause, UInt32 tval, RV32_RegisterSet reg, string message, Exception innerException) : base(Enum.GetName(typeof(RiscvExceptionCause), cause) + "\r\n" + message, innerException)
        {
            // nullチェック
            if (reg is null)
            {
                throw new ArgumentNullException("reg");
            }
            if (message is null)
            {
                throw new ArgumentNullException("message");
            }
            if (innerException is null)
            {
                throw new ArgumentNullException("innerException");
            }

            Data.Add("pc", reg.PC);
            Data.Add("cause", cause);
            Data.Add("tval", tval);
            reg.HandleException(cause, tval);
        }