#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;
}