Mercurial > projects > ddmd
view dmd/expression/Shr.d @ 144:ea6325d0edd9
+ RealExp.toCBuffer
author | Eldar Insafutdinov <e.insafutdinov@gmail.com> |
---|---|
date | Tue, 14 Sep 2010 22:39:29 +0100 |
parents | e28b18c23469 |
children | b7b61140701d |
line wrap: on
line source
module dmd.expression.Shr; import dmd.common; import dmd.Expression; import dmd.Type; import dmd.Loc; import dmd.IntegerExp; import dmd.TY; Expression Shr(Type type, Expression e1, Expression e2) { Loc loc = e1.loc; long value = e1.toInteger(); uint count = cast(uint)e2.toInteger(); switch (e1.type.toBasetype().ty) { case TY.Tint8: value = cast(byte)(value) >> count; break; case TY.Tuns8: value = cast(ubyte)(value) >> count; break; case TY.Tint16: value = cast(short)(value) >> count; break; case TY.Tuns16: value = cast(ushort)(value) >> count; break; case TY.Tint32: value = cast(int)(value) >> count; break; case TY.Tuns32: value = cast(uint)(value) >> count; break; case TY.Tint64: value = cast(long)(value) >> count; break; case TY.Tuns64: value = cast(ulong)(value) >> count; break; } return new IntegerExp(loc, value, type); }