public void ConstructLiteralDecimal(decimal dec)
{
if (dec >= (decimal)int.MinValue && dec <= (decimal)int.MaxValue && decimal.Truncate(dec) == dec)
{
// Decimal can be constructed from a 32-bit integer
LoadInteger((int)dec);
Construct(XmlILConstructors.DecFromInt32);
}
else
{
int[] bits = Decimal.GetBits(dec);
LoadInteger(bits[0]);
LoadInteger(bits[1]);
LoadInteger(bits[2]);
LoadBoolean(bits[3] < 0);
LoadInteger(bits[3] >> 16);
Construct(XmlILConstructors.DecFromParts);
}
}