#include <stdio.h> #include <string.h> #include "opcodes.h" int main() { register long g asm("r7"); register double f asm("f8"); double f1; memset(&f1, 0x0f, sizeof(double)); f = f1; g = 42; printf("test LGDR\n\n"); printf("before g = %ld\n", g); printf("before f = %a\n", f); printf("copy f to g\n"); asm volatile ( LGDR(7,8) : "=d"(g) : "f"(f)); printf("after g = %16.16lx\n", g); /* 0x0x0x0...... */ printf("after f = %a\n", f); printf("\ntest LDGR\n\n"); f = 3.14; printf("before g = %16.16lx\n", g); /* 0x0x0x0...... */ printf("before f = %a\n", f); printf("copy g to f\n"); asm volatile ( LDGR(8,7) : "=f"(f) : "d"(g)); printf("after g = %16.16lx\n", g); /* 0x0x0x0...... */ printf("after f = %a\n", f); return 0; }