blob: c6ebdc3168a508a7baf4dead20f02dfe3d605c63 [file] [log] [blame]
#include <stdio.h>
#include <stdlib.h>
void do_fld1 ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fld1");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldl2t ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldl2t");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldl2e ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldl2e");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldpi ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldpi");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldlg2 ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldlg2");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldln2 ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldln2");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
void do_fldz ( void* p )
{
asm __volatile__("fninit");
asm __volatile__("fldz");
asm __volatile__("fstpl (%0)" : : "r" (p) : "memory" );
}
typedef unsigned char UChar;
void foo ( void (*f)(void*), char* name )
{
int i;
UChar* b = malloc(8);
f(b);
printf("%s IRConst_F64i(0x", name);
for (i = 7; i >= 0; i--)
printf("%02x", (int)b[i]);
printf(")\n");
}
int main ( void )
{
foo( do_fld1, "fld1 ");
foo( do_fldl2t, "fldl2t");
foo( do_fldl2e, "fldl2e");
foo( do_fldpi, "fldpi ");
foo( do_fldlg2, "fldlg2");
foo( do_fldln2, "fldln2");
foo( do_fldz, "fldz ");
return 0;
}