1 2#include <stdlib.h> 3#include <assert.h> 4 5/* This should run without comment, but 3.2.1 (and presumably earlier) 6 give a false uninit-value warning. This was fixed by vex r1675 7 which is a spec rule for COPY-CondP. */ 8 9int main ( void ) 10{ 11 int* x = malloc(4); 12 assert(x); 13 __asm__ __volatile__( 14 "finit\n\t" 15 "ffree %%st(0)\n\t" 16 "ffree %%st(1)\n\t" 17 "ffree %%st(2)\n\t" 18 "ffree %%st(3)\n\t" 19 "ffree %%st(4)\n\t" 20 "ffree %%st(5)\n\t" 21 "ffree %%st(6)\n\t" 22 "ffree %%st(7)\n\t" 23 "andb $128, (%0)\n\t" 24 "fldz\n\t" 25 "fldz\n\t" 26 "fucompp\n\t" 27 "fnstsw %%ax\n\t" 28 "sahf\n\t" 29 "jp .Lfoobar\n" 30 ".Lfoobar:\n\t" 31 "nop" 32 : : "r"(x) : "eax", "cc" 33 ); 34 free(x); 35 return 0; 36} 37