public ArithInstruction(CodeLocationTag codeLocation, HighSsaRegister dest, NumberArithOp arithOp, NumberArithType arithType, HighSsaRegister left, HighSsaRegister right, bool checkOverflow) : base(codeLocation) { m_dest = dest; m_arithOp = arithOp; m_arithType = arithType; m_left = left; m_right = right; m_checkOverflow = checkOverflow; }
public override void ReadHeader(TagRepository rpa, CatalogReader catalog, HighMethodBodyParseContext methodBody, HighCfgNodeHandle[] cfgNodes, List<HighSsaRegister> ssaRegisters, CodeLocationTag baseLocation, bool haveDebugInfo, BinaryReader reader) { m_arithOp = (NumberArithOp)reader.ReadByte(); if (m_arithOp < 0 || m_arithOp >= NumberArithOp.NumHighOpTypes) throw new Exception("Invalid arith op"); m_arithType = (NumberArithType)reader.ReadByte(); if (m_arithType < 0 || m_arithType >= NumberArithType.NumHighArithTypes) throw new Exception("Invalid arith type"); m_checkOverflow = reader.ReadBoolean(); }