z/Architecture Overview
64 bit general registers
- Can be operated upon as 64 or 32 bit entities
int main(int argc, char **argv)
union { long x; int y[2]; } longvar;
printf("%08X %08X %ld\n",longvar.y[0],longvar.y[1],longvar.x);
__asm__ __volatile__ ("slr %0,%0" : "+d" (longvar.x) : : "cc");
printf("%08X %08X %ld\n",longvar.y[0],longvar.y[1],longvar.x);
__asm__ __volatile__ ("slgr %0,%0" : "+d" (longvar.x) : : "cc");
printf("%08X %08X %ld\n",longvar.y[0],longvar.y[1],longvar.x);
FFFFFFFF 00000000 -4294967296