import tango.io.Stdout;
void main()
{
int a=20,b=-20;
uint x=0x23,y=0xc00000c0;
Stdout.formatln (" : {,16} {,16} {,8} {,8}", "a", "b", "x", "y").newline;
Stdout.formatln ("normal: {:x16} {:x16} {:x8} {:x8}", a, b, x, y).newline;
Stdout.formatln ("<<1 : {:x16} {:x16} {:x8} {:x8}", a<<1, b<<1, x<<1, y<<1).newline;
Stdout.formatln (">>1 : {:x16} {:x16} {:x8} {:x8}", a>>1, b>>1, x>>1, y>>1).newline;
Stdout.formatln (">>>1 : {:x16} {:x16} {:x8} {:x8}", a>>>1, b>>>1, x>>>1, y>>>1).newline;
Stdout.formatln ("asmshr: {:x16} {:x16} {:x8} {:x8}", gshr(a), gshr(b), gshr(x), gshr(y)).newline;
Stdout.formatln ("asmsar: {:x16} {:x16} {:x8} {:x8}", gsar(a), gsar(b), gsar(x), gsar(y)).newline;
}
T gshr(T)(T a)
{
asm {
mov EAX, a;
shr EAX, 1;
}
}
T gsar(T)(T a)
{
asm {
mov EAX, a;
sar EAX, 1;
}
}