Code

Remove remnants of rather pointless MMX optimizations, and fix
authorKrzysztof Kosiński <tweenk.pl@gmail.com>
Mon, 29 Mar 2010 21:06:33 +0000 (23:06 +0200)
committerKrzysztof Kosiński <tweenk.pl@gmail.com>
Mon, 29 Mar 2010 21:06:33 +0000 (23:06 +0200)
build failure caused by recent extension renames

configure.ac
share/extensions/Makefile.am
src/libnr/Makefile_insert
src/libnr/have_mmx.S [deleted file]
src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S [deleted file]
src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S [deleted file]
src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S [deleted file]

index 3835f620e263e6b054c17889de09ec41d8b64c53..7e311a78c06866b9abb01c75e74f5afdef30ab2e 100644 (file)
@@ -922,61 +922,6 @@ dnl
 AC_SUBST(INKSCAPE_CFLAGS)
 AC_SUBST(INKSCAPE_LIBS)
 
-#
-# Checks to see if we should compile in MMX support (there will be
-# a runtime test when the code is actually run to see if it should
-# be used - this just checks if we can compile it.)
-#
-# This code is partially taken from Mesa
-#
-dnl Let people disable the MMX optimization
-AC_ARG_ENABLE(mmx, [  --disable-mmx     Don't use MMX optimization [default=auto]], enable_mmx="$enableval", enable_mmx=auto)
-
-AC_MSG_CHECKING(for x86 platform)
-case $host_cpu in
-  i386|i486|i586|i686|i786|k6|k7)
-    use_x86_asm=yes
-    ;;
-  *)
-    use_x86_asm=no
-esac
-AC_MSG_RESULT($use_x86_asm)
-
-dnl Are we going to use MMX extensions
-use_mmx_asm=no
-
-AC_MSG_CHECKING(compiler support for MMX)
-
-if test x$enable_mmx = xauto ; then
-  if test $use_x86_asm = yes; then
-    save_ac_ext=$ac_ext
-    ac_ext=S
-    
-    cp $srcdir/src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S conftest.S
-    if AC_TRY_EVAL(ac_compile); then
-        use_mmx_asm=yes
-    fi
-    dnl rm -f conftest.[oS]
-
-    ac_ext=$save_ac_ext
-  fi
-
-dnl Enforce usage of MMX extensions
-elif test x$enable_mmx = xyes ; then
-    use_mmx_asm=yes
-else
-    use_mmx_asm=no
-fi
-
-if test $use_mmx_asm = yes; then
-       AC_DEFINE(WITH_MMX, 1, [Use MMX optimizations, if CPU supports it])
-       AC_MSG_RESULT(yes)
-else
-       AC_MSG_RESULT(no)
-fi
-
-AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
-
 dnl Define our data paths for config.h
 AC_DEFINE_DIR([INKSCAPE_DATADIR], [datadir], [Base data directory])
 AC_DEFINE_DIR([PACKAGE_LOCALE_DIR], [localedir], [Locatization directory])
@@ -1076,7 +1021,6 @@ Configuration:
         Use Xft font database:    ${xft_ok}
         Use gnome-vfs:            ${gnome_vfs}
         Use openoffice files:     ${ij}
-        Use MMX optimizations:    ${use_mmx_asm}
         Use relocation support:   ${enable_binreloc}
         Internal Python:          ${with_python}
         Internal Perl:            ${with_perl}
index cd409d23325042945484b8dc4f9fe10b5ac956fa..a64d772034fd447dfc9c93e85e1ad49565fc2e29 100644 (file)
@@ -133,9 +133,9 @@ extensions = \
        uniconv-ext.py \
        uniconv_output.py \
        voronoi.py \
-       webslicer-create-group.py \
-       webslicer-create-rect.py \
-       webslicer-export.py \
+       webslicer_create_group.py \
+       webslicer_create_rect.py \
+       webslicer_export.py \
        web-set-att.py \
        web-transmit-att.py \
        whirl.py \
@@ -259,9 +259,9 @@ modules = \
        text_braille.inx \
        triangle.inx \
        txt2svg.inx \
-       webslicer-create-group.inx \
-       webslicer-create-rect.inx \
-       webslicer-export.inx \
+       webslicer_create_group.inx \
+       webslicer_create_rect.inx \
+       webslicer_export.inx \
        web-set-att.inx \
        web-transmit-att.inx \
        whirl.inx \
index 4b19028f9293d14b9d378678f88decd858b0a0e2..8dd3c46e32d3d5af59e08ee53a3077641d15a724 100644 (file)
@@ -1,13 +1,5 @@
 ## Makefile.am fragment sourced by src/Makefile.am.
 
-if USE_MMX
-libnr_mmx_sources =    \
-       libnr/have_mmx.S        \
-       libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S        \
-       libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S   \
-       libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S
-endif
-
 ink_common_sources +=  \
        libnr/in-svg-plane.h    \
        libnr/nr-blit.cpp       \
diff --git a/src/libnr/have_mmx.S b/src/libnr/have_mmx.S
deleted file mode 100644 (file)
index d642819..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-       .file "have_mmx.S"
-
-# Ensure Inkscape is execshield protected
-       .section .note.GNU-stack
-       .previous
-       
-       .version "01.01"
-gcc2_compiled.:
-.text
-       .align 16
-.globl nr_have_mmx
-       .type    nr_have_mmx,@function
-
-nr_have_mmx:
-       push    %ebx
-
-# Check if bit 21 in flags word is writeable
-
-       pushfl  
-       popl    %eax
-       movl    %eax,%ebx
-       xorl    $0x00200000, %eax
-       pushl   %eax
-       popfl
-       pushfl
-       popl    %eax
-
-       cmpl    %eax, %ebx
-
-       je .notfound
-
-# OK, we have CPUID
-
-       movl    $1, %eax
-       cpuid
-       
-       test    $0x00800000, %edx
-       jz      .notfound
-
-       movl    $1, %eax
-       jmp     .out
-
-.notfound:
-       movl    $0, %eax
-.out:  
-       popl    %ebx
-       ret
diff --git a/src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S b/src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S
deleted file mode 100644 (file)
index db2cbec..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-       .file   "nr-compose.c"
-       
-# Ensure Inkscape is execshield protected
-       .section .note.GNU-stack
-       .previous
-       
-       .text
-       .align 2
-.globl nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP
-       .type   nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP,@function
-
-/*
- * This code is in public domain
- *
- * c    32(%ebp)
- * srs  28(%ebp)
- * spx  24(%ebp)
- * rs   20(%ebp)
- * h    16(%ebp)
- * w    12(%ebp)
- * px   8(%ebp)
- * r   -8(%ebp)
- * g   -12(%ebp)
- * b   -16(%ebp)
- * a   -20(%ebp)
- * s   -24(%ebp) -> %esi
- * d   -28(%ebp) -> %edi
- * x   -32(%ebp) -> %ebx
- * y   -36(%ebp)
- * ca  -40(%ebp)
- *
- * mm0 Fg
- * mm1 FgA
- * mm2 FgPre
- * mm3
- * mm4
- * mm5
- * mm6 128
- * mm7 0
- *
-*/
-
-nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP:
-       pushl   %ebp
-       movl    %esp, %ebp
-       pushl   %ebx
-       subl    $36, %esp
-       pushl   %edi
-       pushl   %esi
-
-/* Load %mm7 with [0 0 0 0] */
-       movl    $0, %eax
-       movd    %eax, %mm7
-
-/* Load %mm6 with [128 128 128 128] */
-       movl    $0x80808080, %eax
-       movd    %eax, %mm6
-       punpcklbw %mm7, %mm6
-
-/* FgC -> %mm0 */
-       movl    32(%ebp), %eax
-       movd    (%eax), %mm0
-       punpcklbw %mm7, %mm0
-
-/* for (y = ...) */
-       movl    16(%ebp), %ecx
-.fory:
-
-/* d = px */
-/* s = spx */
-       movl    8(%ebp), %edi
-       movl    24(%ebp), %esi
-
-/* for (x = ...) */
-       movl    12(%ebp), %ebx
-.forx:
-
-/* [m m m m] -> %mm1 */
-       movzbl  (%esi), %eax
-       testb   $0xff, %al
-       jz      .clip
-       movd    %eax, %mm1
-       punpcklwd %mm1, %mm1
-       punpckldq %mm1, %mm1
-
-/* Fg -> mm2 */
-       movq    %mm0, %mm2
-       pmullw  %mm1, %mm2
-       paddw   %mm6, %mm2
-       movq    %mm2, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm3, %mm2
-       psrlw   $8, %mm2
-
-/* Store pixel */
-       packuswb %mm2, %mm2
-       movd    %mm2, (%edi)
-
-.clip:
-       addl    $4, %edi
-       incl    %esi
-
-       decl    %ebx
-       jnz     .forx
-
-       movl    20(%ebp), %eax
-       addl    %eax, 8(%ebp)
-       movl    28(%ebp), %eax
-       addl    %eax, 24(%ebp)
-
-       decl    %ecx
-       jnz     .fory
-
-.exit:
-       emms
-       popl    %esi
-       popl    %edi
-       addl    $36, %esp
-       popl    %ebx
-       popl    %ebp
-       ret
-
-.Lfe1:
-       .size   nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP,.Lfe1-nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP
-       .ident  "GCC: (GNU) 3.2"
diff --git a/src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S b/src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S
deleted file mode 100644 (file)
index fe1d9be..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-       .file   "nr-compose.c"
-
-# Ensure Inkscape is execshield protected
-       .section .note.GNU-stack
-       .previous
-       
-       .text
-       .align 2
-.globl nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP
-       .type   nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP,@function
-
-/*
- * This code is in public domain
- *
- * c    32(%ebp)
- * srs  28(%ebp)
- * spx  24(%ebp)
- * rs   20(%ebp)
- * h    16(%ebp)
- * w    12(%ebp)
- * px   8(%ebp)
- * r   -8(%ebp)
- * g   -12(%ebp)
- * b   -16(%ebp)
- * a   -20(%ebp)
- * s   -24(%ebp) -> %esi
- * d   -28(%ebp) -> %edi
- * x   -32(%ebp) -> %ebx
- * y   -36(%ebp)
- * ca  -40(%ebp)
- *
- * mm0 Fg
- * mm1 MMMM
- * mm2 FgM
- * mm3
- * mm4
- * mm5 255
- * mm6 128
- * mm7 0
- *
-*/
-
-nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP:
-       pushl   %ebp
-       movl    %esp, %ebp
-       pushl   %ebx
-       subl    $36, %esp
-       pushl   %edi
-       pushl   %esi
-
-/* Load %mm7 with [0 0 0 0] */
-       movl    $0, %eax
-       movd    %eax, %mm7
-
-/* Load %mm6 with [128 128 128 128] */
-       movl    $0x80808080, %eax
-       movd    %eax, %mm6
-       punpcklbw %mm7, %mm6
-
-/* Load %mm5 with [255 255 255 255] */
-       movl    $0xffffffff, %eax
-       movd    %eax, %mm5
-       punpcklbw %mm7, %mm5
-
-/* FgC -> %mm0 */
-       movl    32(%ebp), %eax
-       movd    (%eax), %mm0
-       punpcklbw %mm7, %mm0
-
-/* Check full opacity */
-       cmpb    $0xff, %al
-       jz      .opaque
-
-/* for (y = ...) */
-       movl    16(%ebp), %ecx
-.fory:
-
-/* d = px */
-/* s = spx */
-       movl    8(%ebp), %edi
-       movl    24(%ebp), %esi
-
-/* for (x = ...) */
-       movl    12(%ebp), %ebx
-.forx:
-
-/* [m m m m] -> %mm1 */
-       movzbl  (%esi), %eax
-       testb   $0xff, %al
-       jz      .clip
-       movd    %eax, %mm1
-       punpcklwd %mm1, %mm1
-       punpckldq %mm1, %mm1
-
-/* Fg -> mm2 */
-       movq    %mm0, %mm2
-       pmullw  %mm1, %mm2
-       paddw   %mm6, %mm2
-       movq    %mm2, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm3, %mm2
-       psrlw   $8, %mm2
-
-/* [255 - FgA] -> mm1 */
-       movq    %mm2, %mm1
-       punpckhwd %mm1, %mm1
-       punpckhdq %mm1, %mm1
-       pxor    %mm5, %mm1
-
-/* Bg -> mm3 */
-       movd    (%edi), %mm3
-       punpcklbw %mm7, %mm3
-
-/* Fg + ((255 - FgA) * Bg) / 255 */
-       pmullw  %mm1, %mm3
-       paddw   %mm6, %mm3
-       movq    %mm3, %mm4
-       psrlw   $8, %mm4
-       paddw   %mm4, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm2, %mm3
-
-/* Store pixel */
-       packuswb %mm3, %mm3
-       movd    %mm3, (%edi)
-
-.clip:
-       addl    $4, %edi
-       incl    %esi
-
-       decl    %ebx
-       jnz     .forx
-
-       movl    20(%ebp), %eax
-       addl    %eax, 8(%ebp)
-       movl    28(%ebp), %eax
-       addl    %eax, 24(%ebp)
-
-       decl    %ecx
-       jnz     .fory
-
-.exit:
-       emms
-       popl    %esi
-       popl    %edi
-       addl    $36, %esp
-       popl    %ebx
-       popl    %ebp
-       ret
-
-.opaque:
-/* for (y = ...) */
-       movl    16(%ebp), %ecx
-.o_fory:
-
-/* d = px */
-/* s = spx */
-       movl    8(%ebp), %edi
-       movl    24(%ebp), %esi
-
-/* for (x = ...) */
-       movl    12(%ebp), %ebx
-.o_forx:
-
-/* [m m m m] -> %mm1 */
-       movzbl  (%esi), %eax
-       testb   $0xff, %al
-       jz      .o_clip
-       cmpb    $0xff, %al
-       jz      .o_full
-       movd    %eax, %mm1
-       punpcklwd %mm1, %mm1
-       punpckldq %mm1, %mm1
-
-/* Fg -> mm2 */
-       movq    %mm0, %mm2
-       pmullw  %mm1, %mm2
-       paddw   %mm6, %mm2
-       movq    %mm2, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm3, %mm2
-       psrlw   $8, %mm2
-
-/* [255 - FgA] -> mm1 */
-       movq    %mm2, %mm1
-       punpckhwd %mm1, %mm1
-       punpckhdq %mm1, %mm1
-       pxor    %mm5, %mm1
-
-/* Bg -> mm3 */
-       movd    (%edi), %mm3
-       punpcklbw %mm7, %mm3
-
-/* Fg + ((255 - FgA) * Bg) / 255 */
-       pmullw  %mm1, %mm3
-       paddw   %mm6, %mm3
-       movq    %mm3, %mm4
-       psrlw   $8, %mm4
-       paddw   %mm4, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm2, %mm3
-
-       jmp     .o_store
-
-.o_full:
-       movq    %mm0, %mm3
-
-.o_store:      
-/* Store pixel */
-       packuswb %mm3, %mm3
-       movd    %mm3, (%edi)
-
-.o_clip:
-       addl    $4, %edi
-       incl    %esi
-
-       decl    %ebx
-       jnz     .o_forx
-
-       movl    20(%ebp), %eax
-       addl    %eax, 8(%ebp)
-       movl    28(%ebp), %eax
-       addl    %eax, 24(%ebp)
-
-       decl    %ecx
-       jnz     .o_fory
-       jmp     .exit
-
-.Lfe1:
-       .size   nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP,.Lfe1-nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP
-       .ident  "GCC: (GNU) 3.2"
diff --git a/src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S b/src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S
deleted file mode 100644 (file)
index 37261e5..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-       .file   "nr-compose.c"
-
-# Ensure Inkscape is execshield protected
-       .section .note.GNU-stack
-       .previous
-       
-       .text
-       .align 2
-.globl nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P
-       .type   nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P,@function
-
-/*
- * This code is in public domain
- *
- * alpha 32(%ebp)
- * srs  28(%ebp)
- * spx  24(%ebp)
- * rs   20(%ebp)
- * h    16(%ebp)
- * w    12(%ebp)
- * px   8(%ebp)
- * r   -8(%ebp)
- * g   -12(%ebp)
- * b   -16(%ebp)
- * a   -20(%ebp)
- * s   -24(%ebp) -> %esi
- * d   -28(%ebp) -> %edi
- * x   -32(%ebp) -> %ebx
- * y   -36(%ebp)
- * ca  -40(%ebp)
- *
- * mm0 A
- * mm1 FgA
- * mm2 FgPre
- * mm3
- * mm4
- * mm5 255
- * mm6 128
- * mm7 0
- *
-*/
-
-nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P:
-       pushl   %ebp
-       movl    %esp, %ebp
-       pushl   %ebx
-       subl    $36, %esp
-       pushl   %edi
-       pushl   %esi
-
-/* Load %mm7 with [0 0 0 0] */
-       movl    $0, %eax
-       movd    %eax, %mm7
-
-/* Load %mm6 with [128 128 128 128] */
-       movl    $0x80808080, %eax
-       movd    %eax, %mm6
-       punpcklbw %mm7, %mm6
-
-/* Load %mm5 with [255 255 255 255] */
-       movl    $0xffffffff, %eax
-       movd    %eax, %mm5
-       punpcklbw %mm7, %mm5
-
-/* Load %mm0 with [a a a a] */
-/* Check full opacity */
-       movzbl  32(%ebp), %eax
-       cmpb    $0xff, %al
-       jz      .opaque
-       movd    %eax, %mm0
-       punpcklwd %mm0, %mm0
-       punpckldq %mm0, %mm0
-
-/* for (y = ...) */
-       movl    16(%ebp), %ecx
-.fory:
-
-/* d = px */
-/* s = spx */
-       movl    8(%ebp), %edi
-       movl    24(%ebp), %esi
-
-/* for (x = ...) */
-       movl    12(%ebp), %ebx
-.forx:
-
-/* Fg -> %mm1 */
-/* fixme: Do we have to bother about alignment here? (Lauris) */
-       movl    (%esi), %eax
-       testl   $0xff000000, %eax
-       jz      .clip
-       movd    %eax, %mm1
-       punpcklbw %mm7, %mm1
-
-/* [Fg * a] -> mm1 */
-       pmullw  %mm0, %mm1
-       paddw   %mm6, %mm1
-       movq    %mm1, %mm2
-       psrlw   $8, %mm2
-       paddw   %mm2, %mm1
-       psrlw   $8, %mm1
-
-/* [255 - FgA] -> mm2 */
-       movq    %mm1, %mm2
-       punpckhwd %mm2, %mm2
-       punpckhdq %mm2, %mm2
-       pxor    %mm5, %mm2
-
-/* Bg -> mm3 */
-       movd    (%edi), %mm3
-       punpcklbw %mm7, %mm3
-
-/* Fg + ((255 - FgA) * Bg) / 255 */
-       pmullw  %mm2, %mm3
-       paddw   %mm6, %mm3
-       movq    %mm3, %mm4
-       psrlw   $8, %mm4
-       paddw   %mm4, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm1, %mm3
-
-/* Store pixel */
-       packuswb %mm3, %mm3
-       movd    %mm3, %eax
-       movb    %al, 0(%edi)
-       shrl    $8, %eax
-       movb    %al, 1(%edi)
-       shrl    $8, %eax
-       movb    %al, 2(%edi)
-
-.clip:
-       addl    $3, %edi
-       addl    $4, %esi
-
-       decl    %ebx
-       jnz     .forx
-
-       movl    20(%ebp), %eax
-       addl    %eax, 8(%ebp)
-       movl    28(%ebp), %eax
-       addl    %eax, 24(%ebp)
-
-       decl    %ecx
-       jnz     .fory
-
-.exit:
-       emms
-       popl    %esi
-       popl    %edi
-       addl    $36, %esp
-       popl    %ebx
-       popl    %ebp
-       ret
-
-.opaque:
-/* for (y = ...) */
-       movl    16(%ebp), %ecx
-.o_fory:
-
-/* d = px */
-/* s = spx */
-       movl    8(%ebp), %edi
-       movl    24(%ebp), %esi
-
-/* for (x = ...) */
-       movl    12(%ebp), %ebx
-.o_forx:
-
-/* Fg -> %mm1 */
-/* fixme: Do we have to bother about alignment here? (Lauris) */
-       movl    (%esi), %eax
-       testl   $0xff000000, %eax
-       jz      .o_clip
-       cmpl    $0xff000000, %eax
-       jnb     .o_store
-       movd    %eax, %mm1
-       punpcklbw %mm7, %mm1
-
-/* [255 - FgA] -> mm2 */
-       movq    %mm1, %mm2
-       punpckhwd %mm2, %mm2
-       punpckhdq %mm2, %mm2
-       pxor    %mm5, %mm2
-
-/* Bg -> mm3 */
-       movd    (%edi), %mm3
-       punpcklbw %mm7, %mm3
-
-/* Fg + ((255 - FgA) * Bg) / 255 */
-       pmullw  %mm2, %mm3
-       paddw   %mm6, %mm3
-       movq    %mm3, %mm4
-       psrlw   $8, %mm4
-       paddw   %mm4, %mm3
-       psrlw   $8, %mm3
-       paddw   %mm1, %mm3
-
-/* Store pixel */
-       packuswb %mm3, %mm3
-       movd    %mm3, %eax
-.o_store:
-       movb    %al, 0(%edi)
-       shrl    $8, %eax
-       movb    %al, 1(%edi)
-       shrl    $8, %eax
-       movb    %al, 2(%edi)
-
-.o_clip:
-       addl    $3, %edi
-       addl    $4, %esi
-
-       decl    %ebx
-       jnz     .o_forx
-
-       movl    20(%ebp), %eax
-       addl    %eax, 8(%ebp)
-       movl    28(%ebp), %eax
-       addl    %eax, 24(%ebp)
-
-       decl    %ecx
-       jnz     .o_fory
-
-       jmp .exit
-
-.Lfe1:
-       .size   nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P,.Lfe1-nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P
-       .ident  "GCC: (GNU) 3.2"