22#ifndef _OPT_HOUGH_I686_X87_H
23#define _OPT_HOUGH_I686_X87_H
27#define AD_FLOAT ".single "
28#define AD_ASCII ".ascii "
29#define AD_ALIGN16 ".align 4"
30#define AD_ALIGN32 ".align 5"
31#define AD_ALIGN64 ".align 6"
33#define AD_FLOAT ".float "
34#define AD_ASCII ".string "
35#define AD_ALIGN16 ".align 16"
36#define AD_ALIGN32 ".align 32"
37#define AD_ALIGN64 ".align 64"
41#define ADDPHMD2HD_WLR_LOOP(_XPIXEL,_YLOWER,_YUPPER,_XSIDEP1,_MAP,_WEIGHT)\
44 "mov %[xPixel], %%eax \n\t" \
45 "mov %[yLower], %%ebx \n\t" \
46 "lea (%%eax,%%ebx,0x2), %%esi \n\t" \
47 "mov %[xSideP1], %%edx \n\t" \
48 "mov %[yUpper] , %%edi \n\t" \
49 "lea -0x2(%%eax,%%edi,0x2),%%eax \n\t" \
50 "mov %[map] , %%edi \n\t" \
51 "mov %%ebx,%%ecx \n\t" \
52 "imul %%edx, %%ecx \n\t" \
53 "lea (%%edi, %%ecx, 0x8), %%edi \n\t" \
55 "cmp %%eax,%%esi \n\t" \
59 "movzwl (%%esi),%%ebx \n\t" \
60 "movzwl 2(%%esi),%%ecx \n\t" \
62 "lea (%%edi, %%ebx, 0x8) , %%ebx \n\t" \
64 "lea (%%edi,%%edx,0x8) , %%edi \n\t" \
65 "lea (%%edi,%%ecx,0x8) , %%ecx \n\t" \
69 "fadd %%st(2),%%st \n\t" \
70 "fstpl (%%ebx) \n\t" \
71 "fadd %%st(1),%%st \n\t" \
72 "fstpl (%%ecx) \n\t" \
73 "lea (%%edi,%%edx,0x8), %%edi \n\t" \
75 "lea 4(%%esi) , %%esi \n\t" \
76 "cmp %%eax,%%esi \n" \
80 "add $0x2,%%eax \n\t" \
81 "cmp %%eax,%%esi \n\t" \
84 "movzwl (%%esi) , %%ebx \n\t" \
85 "lea (%%edi, %%ebx, 0x8) , %%ebx \n\t" \
87 "fadd %%st(1),%%st \n\t" \
88 "fstpl (%%ebx) \n\t" \
96 [xPixel] "m" (_XPIXEL) , \
97 [yLower] "m" (_YLOWER) , \
98 [yUpper] "m" (_YUPPER), \
99 [xSideP1] "m" (_XSIDEP1) , \
103 "memory","eax", "ecx", "edx", "esi", "edi", "cc", \
104 "st","st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)" \