swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Swarm-Support] Leopard and libtool woes


From: Keith Fligg
Subject: Re: [Swarm-Support] Leopard and libtool woes
Date: Wed, 14 May 2008 22:09:48 -0700

Hello Marcus, and thanks for the response.

Well, it seems that I got the error below by running 'make clean'. I guess doing that is verboten.

But if it isn't one thing, it's another. So, now I'm getting this error:

libtool: link: gcc -dynamiclib -o .libs/libswarm.0.dylib .libs/ SwarmEnvironment.o .libs/classList.o .libs/libswarm.lax/libspace.a/ Ca2d.o .libs/libswarm.lax/libspace.a/ConwayLife2d.o
<-------snip------>
.libs/libswarm.lax/libdefobj.a/avcall-i386.o
<-------snip------>
.libs/libswarm.lax/libdefobj.a/fcall_objc.o
<-------snip------>
\.libs/libswarm.lax/libswarmobjc.a/sarray.o .libs/libswarm.lax/ libswarmobjc.a/selector.o .libs/libswarm.lax/libswarmobjc.a/ sendmsg.o .libs/libswarm.lax/libswarmobjc.a/thr-single.o .libs/ libswarm.lax/libswarmobjc.a/thr.o -L/Users/kfligg/Documents/swarm/ swarm/src/space -L/Users/kfligg/Documents/swarm/swarm/src/analysis -L/ Users/kfligg/Documents/swarm/swarm/src/simtoolsgui -L/Users/kfligg/ Documents/swarm/swarm/src/simtools -L/Users/kfligg/Documents/swarm/ swarm/src/random -L/Users/kfligg/Documents/swarm/swarm/src/tkobjc -L/ Users/kfligg/Documents/swarm/swarm/src/tclobjc -L/Users/kfligg/ Documents/swarm/swarm/src/objectbase -L/Users/kfligg/Documents/swarm/ swarm/src/activity -L/Users/kfligg/Documents/swarm/swarm/src/defobj -L/ Users/kfligg/Documents/swarm/swarm/src/collections -L/Users/kfligg/ Documents/swarm/swarm/src/misc -L/Users/kfligg/Documents/swarm/swarm/ libobjc -L/sw/lib -L/usr/X11/lib -lBLT.2.4 -ltk8.4 -ltcl8.4 /usr/X11/ lib/libXpm.4.11.0.dylib -lz /usr/X11/lib/libX11.6.2.0.dylib /usr/X11/ lib/libXau.6.0.0.dylib /usr/X11/lib/libXdmcp.6.0.0.dylib -lm -ldl - Wl,-search_paths_first -install_name /usr/local/swarm/lib/libswarm. 0.dylib -compatibility_version 1 -current_version 1.0
Undefined symbols:
  "___builtin_avcall", referenced from:
      _objc_call in fcall_objc.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[4]: *** [libswarm.la] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I removed a bunch of the .o files, since I think they are just taking up a bunch of space (I can forward the entire list if you think it's important).

Does this look like a familiar message? FWIW, my configure like looks like:

./configure --with-tcl=/sw/lib --with-tk=/sw/lib --with-tclinclude=/sw/ include --with-tkinclude=/sw/include --with-x --prefix=/usr/local/ swarm --without-hdf5dir --without-jdkdir --enable-onelib --with- bltdir=/sw/lib --srcdir=/Users/kfligg/Documents/swarm/swarm

I also had to set CFLAGS=-fnested-functions in my environment.

Now, on to the good stuff. The only symbol in avcall-i386.o (via nm) is __builtin_avcall. Note that there are only two underscores, and not four, as required by fcall_objc.o. Is there some strange name mangling going on?

Sorry for the trouble, and thanks again for the help.

 - Keith

On May 14, 2008, at 8:30 PM, Marcus G. Daniels wrote:

Hi Keith,
Well, I finally got around to installing automake, autoconf and libtool and got past that error. Now, I'm getting the following:

Making all in avcall
make[2]: *** No rule to make target `avcall-i386.S', needed by `avcall-i386.s'. Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Strange, I just pulled a new CVS checkout as below and it build and worked ok on Leopard. Maybe a problem of case-insensitivity from the filesystem you are using? Here are some details on my build environment and procedure. Also attached is the Makefile that was extracted for avcall/Makefile and avcall-i386.S itself (which is in CVS).

Marcus



/Users/mdaniels/packages/auto-new/bin/autoconf   --version
autoconf (GNU Autoconf) 2.61
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.
flux:heatbugs mdaniels$ /Users/mdaniels/packages/auto-new/bin/ automake --version
automake (GNU automake) 1.9.6
Written by Tom Tromey <address@hidden>.

Copyright 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. flux:heatbugs mdaniels$ /Users/mdaniels/packages/auto-new/bin/ aclocal --version
aclocal (GNU automake) 1.9.6
Written by Tom Tromey <address@hidden>

Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. flux:heatbugs mdaniels$ /Users/mdaniels/packages/auto-new/bin/ libtool --version
ltmain.sh (GNU libtool) 2.2.2
Written by Gordon Matzigkeit <address@hidden>, 1996

Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PAR





PATH=/Users/mdaniels/packages/auto-new/bin:$PATH ./autogen.sh

cvs -d :ext:address@hidden:/cvsroot/swarm co swarm

EMACS=/usr/bin/emacs /tmp/swarm/configure --prefix=/Users/mdaniels/ packages/swarm --srcdir=/tmp/swarm --with-tcl=/Users/mdaniels/ packages/swarm/lib --with-tk=/Users/mdaniels/packages/swarm/lib -- with-bltdir=/Users/mdaniels/packages/swarm --without-jdkdir --enable- xmlrpc

# Makefile for avcall

#### Start of system configuration section. ####

HOST = i386-apple-darwin9.2.2
CPU = i386
OS = darwin9.2.2

# Directories used by "make":
srcdir = /tmp/swarm/avcall

# Directories used by "make install":
prefix = /Users/mdaniels/packages/swarm
local_prefix = /usr/local
exec_prefix = ${prefix}
libdir = $(exec_prefix)/lib
includedir = $(prefix)/include
mandir = $(exec_prefix)/man
datadir = $(prefix)/share
htmldir = $(datadir)/html

# Programs used by "make":
CC = gcc
CFLAGS = -g -O2
CPP = gcc -E
INCLUDES = -I. -I$(srcdir)
AS_UNDERSCORE = true
ASPFLAGS = `if test true = true; then echo '-DASM_UNDERSCORE'; fi`
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIBTOOL_COMPILE = $(LIBTOOL) --mode=compile
LIBTOOL_LINK = $(LIBTOOL) --mode=link
LIBTOOL_INSTALL = $(LIBTOOL) --mode=install
LIBTOOL_UNINSTALL = $(LIBTOOL) --mode=uninstall
AR = ar
AR_FLAGS = rc
RANLIB = ranlib
MV = mv
LN = ln
RM = rm -f


# Programs used by "make install":
INSTALL = /sw/bin/ginstall -c
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644

#### End of system configuration section. ####

SHELL = /bin/sh

# Needed by $(LIBTOOL).
top_builddir = .
SED = /sw/bin/sed

OBJECTS = avcall.lo structcpy.lo
ifeq ($(OS),cygwin)
OBJECTS := $(OBJECTS) avcall-i386-msvc.lo
endif

all : $(OBJECTS) libavcall.la avcall.h $(srcdir)/avcall.3 $(srcdir)/ avcall.html

avcall.lo : avcall-$(CPU).lo
        $(RM) avcall.lo avcall.o
        $(LN) avcall-$(CPU).lo avcall.lo
        if test -f avcall-$(CPU).o; then $(LN) avcall-$(CPU).o avcall.o; fi

avcall-i386.lo : avcall-i386.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-i386.s

avcall-i386-msvc.lo : avcall-i386-msvc.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-i386-msvc.s

avcall-i386-msvc.s: $(srcdir)/avcall-i386-msvc.c
$(CPP) -DMSVC $(ASPFLAGS) $(srcdir)/avcall-i386-msvc.c | grep -v '^ *#line' | grep -v '^#ident' | grep -v '^#' | sed -e 's,% ,%,g' > avcall-i386-msvc.s

avcall-i386.s : $(srcdir)/avcall-i386.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-i386.S | grep -v '^ *#line' | grep -v '^#ident' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,% ,%,g' - e 's,\. ,.,g' > avcall-i386.s

avcall-x86_64.lo : $(srcdir)/avcall-x86_64.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-x86_64.s

avcall-sparc.lo : avcall-sparc.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-sparc.s

avcall-sparc.s : $(srcdir)/avcall-sparc.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-sparc.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' -e 's,\$$,#,g' > avcall-sparc.s

avcall-sparc64.lo : avcall-sparc64.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-sparc64.s

avcall-sparc64.s : $(srcdir)/avcall-sparc64.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-sparc64.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' -e 's,\$$,#,g' > avcall-sparc64.s

avcall-m68k.lo : avcall-m68k.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-m68k.s

avcall-m68k.s : $(srcdir)/avcall-m68k.mit.S $(srcdir)/avcall- m68k.mot.s $(CPP) $(ASPFLAGS) $(srcdir)/avcall-m68k.mit.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' | if test true = true; then sed -e 's/\$$//g'; else sed -e 's/\$$/%/g'; fi > avcall- m68k.s

avcall-mips.lo : avcall-mips.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-mips.s

avcall-mips.s : $(srcdir)/avcall-mips.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-mips.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' > avcall-mips.s

avcall-mipsn32.lo : avcall-mipsn32.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-mipsn32.s

avcall-mipsn32.s : $(srcdir)/avcall-mipsn32.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-mipsn32.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' > avcall-mipsn32.s

avcall-mips64.lo : avcall-mips64.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-mips64.s

avcall-mips64.s : $(srcdir)/avcall-mips64.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-mips64.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//.*$$,,' > avcall-mips64.s

avcall-alpha.lo : $(srcdir)/avcall-alpha.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-alpha.s

avcall-hppa.lo: $(srcdir)/avcall-hppa.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-hppa.s

avcall-arm.lo : avcall-arm.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-arm.s

avcall-arm.s : $(srcdir)/avcall-arm.S
$(CPP) $(ASPFLAGS) $(srcdir)/avcall-arm.S | grep -v '^ *#line' | grep -v '^#' | sed -e 's,% ,%,g' -e 's,//,@,g' -e 's,\$$,#,g' > avcall-arm.s

avcall-rs6000.lo : $(srcdir)/avcall-rs6000-aix.old.s $(srcdir)/ avcall-rs6000-aix.new.s $(srcdir)/avcall-rs6000-sysv4.s
        case "$(OS)" in \
          aix3*) syntax=aix.old;; \
          aix*) syntax=aix.new;; \
          linux*) syntax=linux;; \
         darwin*) syntax=darwin;; \
          *) syntax=sysv4;; \
        esac; \
cp $(srcdir)/avcall-rs6000-$${syntax}.s avcall-rs6000.s ; rm -f avcall-rs6000.lo ; \
        $(LIBTOOL_COMPILE) $(CC) -x none -c avcall-rs6000.s

avcall-m88k.lo : $(srcdir)/avcall-m88k.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-m88k.s

avcall-convex.lo : $(srcdir)/avcall-convex.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-convex.s

avcall-ia64.lo : $(srcdir)/avcall-ia64.s
        $(LIBTOOL_COMPILE) $(CC) -x none -c $(srcdir)/avcall-ia64.s

structcpy.lo : $(srcdir)/structcpy.c
        $(LIBTOOL_COMPILE) $(CC) $(CFLAGS) -fPIC -c $(srcdir)/structcpy.c

libavcall.la : $(OBJECTS)
        $(LIBTOOL_LINK) $(CC) -o libavcall.la $(OBJECTS)

# Installs the library and include files only. Typically called with only # $(libdir) and $(includedir) - don't use $(prefix) and $ (exec_prefix) here.
install-lib : all force
        if [ ! -d $(libdir) ] ; then mkdir $(libdir) ; fi
$(LIBTOOL_INSTALL) $(INSTALL_DATA) libavcall.la $(libdir)/ libavcall.la
        if [ ! -d $(includedir) ] ; then mkdir $(includedir) ; fi
        $(INSTALL_DATA) avcall.h $(includedir)/avcall.h

install:

install- : all force
        if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi
if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$ (exec_prefix) ; fi
        if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi
$(LIBTOOL_INSTALL) $(INSTALL_DATA) libavcall.la $(DESTDIR)$(libdir)/ libavcall.la if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$ (includedir) ; fi
        $(INSTALL_DATA) avcall.h $(DESTDIR)$(includedir)/avcall.h
        if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi
if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$ (mandir)/man3 ; fi
        $(INSTALL_DATA) $(srcdir)/avcall.3 $(DESTDIR)$(mandir)/man3/avcall.3
if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$ (datadir) ; fi if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$ (htmldir) ; fi $(INSTALL_DATA) $(srcdir)/avcall.html $(DESTDIR)$(htmldir)/ avcall.html

installdirs : force
        if [ ! -d $(DESTDIR)$(prefix) ] ; then mkdir $(DESTDIR)$(prefix) ; fi
if [ ! -d $(DESTDIR)$(exec_prefix) ] ; then mkdir $(DESTDIR)$ (exec_prefix) ; fi
        if [ ! -d $(DESTDIR)$(libdir) ] ; then mkdir $(DESTDIR)$(libdir) ; fi
if [ ! -d $(DESTDIR)$(includedir) ] ; then mkdir $(DESTDIR)$ (includedir) ; fi
        if [ ! -d $(DESTDIR)$(mandir) ] ; then mkdir $(DESTDIR)$(mandir) ; fi
if [ ! -d $(DESTDIR)$(mandir)/man3 ] ; then mkdir $(DESTDIR)$ (mandir)/man3 ; fi if [ ! -d $(DESTDIR)$(datadir) ] ; then mkdir $(DESTDIR)$ (datadir) ; fi if [ ! -d $(DESTDIR)$(htmldir) ] ; then mkdir $(DESTDIR)$ (htmldir) ; fi

uninstall : force
        $(LIBTOOL_UNINSTALL) $(RM) $(DESTDIR)$(libdir)/libavcall.la
        $(RM) $(DESTDIR)$(includedir)/avcall.h
        $(RM) $(DESTDIR)$(mandir)/man3/avcall.3
        $(RM) $(DESTDIR)$(htmldir)/avcall.html

minitests.o : $(srcdir)/minitests.c $(srcdir)/tests.c avcall.h
        $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/minitests.c

minitests.s : $(srcdir)/minitests.c $(srcdir)/tests.c avcall.h
        $(CC) $(CFLAGS) $(INCLUDES) -S $(srcdir)/minitests.c

minitests : minitests.o libavcall.la
$(LIBTOOL_LINK) $(CC) $(CFLAGS) -x none minitests.o libavcall.la -o minitests

check : all minitests
        ./minitests > minitests.out
        uniq -u < minitests.out > minitests.output.$(HOST)
        test '!' -s minitests.output.$(HOST)

tests.o : $(srcdir)/tests.c avcall.h
        $(CC) $(CFLAGS) $(INCLUDES) -c $(srcdir)/tests.c

tests.s : $(srcdir)/tests.c avcall.h
        $(CC) $(CFLAGS) $(INCLUDES) -S $(srcdir)/tests.c

tests : tests.o libavcall.la
        $(LIBTOOL_LINK) $(CC) $(CFLAGS) -x none tests.o libavcall.la -o tests

extracheck : all tests
        ./tests > tests.out
        uniq -u < tests.out > tests.output.$(HOST)
        test '!' -s tests.output.$(HOST)

mostlyclean : clean

clean : force
        $(RM) *.o *.lo *.a libavcall.* core
$(RM) avcall-i386.s avcall-sparc.s avcall-sparc64.s avcall-m68k.s avcall-mips.s avcall-mipsn32.s avcall-mips64.s avcall-arm.s
        $(RM) -r .libs _libs
        $(RM) minitests.o minitests.s minitests minitests.out
        $(RM) tests.o tests.s tests tests.out

distclean : clean
$(RM) config.status config.log config.cache Makefile avcall.h libtool minitests.output.* tests.output.*

maintainer-clean : distclean

force :

distdir:
cp $(filter-out %/tests.output,$(filter-out %/autom4te.cache %/CVS %/m4,$(wildcard $(srcdir)/*))) $(distdir)
        mkdir $(distdir)/tests.output
cp $(filter-out %/CVS,$(wildcard $(srcdir)/tests.output/*)) $ (distdir)/tests.output
        
#include "asmi386.h"
TEXT()
        ALIGN(2)
GLOBL(C(__builtin_avcall))
        DECLARE_FUNCTION(__builtin_avcall)
FUNBEGIN(__builtin_avcall)
        INSN1(push,l    ,R(ebp))
        INSN2(mov,l     ,R(esp),R(ebp))
        INSN1(push,l    ,R(esi))
        INSN1(push,l    ,R(ebx))
        INSN2(mov,l     ,X4 MEM_DISP(ebp,8),R(esi))
        INSN2(add,l     ,NUM(-1024),R(esp))
        INSN2(mov,l     ,R(esp),R(ecx))
        INSN2(mov,l     ,X4 MEM_DISP(esi,20),R(eax))
        INSN2(add,l     ,NUM(-32),R(eax))
        INSN2(sub,l     ,R(esi),R(eax))
        INSN2(mov,l     ,R(eax),R(edx))
        INSN2(sar,l     ,NUM(2),R(edx))
        INSN2(xor,l     ,R(ebx),R(ebx))
        INSN2(cmp,l     ,R(edx),R(ebx))
        INSN1(jge,_     ,L3)
L5:
        INSN2(mov,l     ,X4 MEM_DISP_SHINDEX(esi,32,ebx,4),R(eax))
        INSN2(mov,l     ,R(eax),X4 MEM_SHINDEX(ecx,ebx,4))
        INSN1(inc,l     ,R(ebx))
        INSN2(cmp,l     ,R(edx),R(ebx))
        INSN1(jl,_      ,L5)
L3:
        INSN2(test,b    ,NUM(8),X1 MEM_DISP(esi,4))
        INSN1(je,_      ,L7)
        INSN2(cmp,l     ,NUM(16),X4 MEM_DISP(esi,12))
        INSN1(jne,_     ,L7)
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(ebx))
L7:
        INSN2(mov,l     ,X4 MEM_DISP(esi,12),R(eax))
        INSN2(cmp,l     ,NUM(13),R(eax))
        INSN1(jne,_     ,L8)
        INSN2(mov,l     ,X4 MEM(esi),R(eax))
        INSN1(call,_    ,INDIR(R(eax)))
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN1(fstp,s    ,X4 MEM(eax))
        INSN1(jmp,_     ,L9)
L8:
        INSN2(cmp,l     ,NUM(14),R(eax))
        INSN1(jne,_     ,L10)
        INSN2(mov,l     ,X4 MEM(esi),R(eax))
        INSN1(call,_    ,INDIR(R(eax)))
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN1(fstp,l    ,X8 MEM(eax))
        INSN1(jmp,_     ,L9)
L10:
        INSN2(mov,l     ,X4 MEM(esi),R(eax))
        INSN1(call,_    ,INDIR(R(eax)))
        INSN2(mov,l     ,R(eax),R(ebx))
        INSN2(mov,l     ,X4 MEM_DISP(esi,12),R(eax))
        INSN2(cmp,l     ,NUM(1),R(eax))
        INSN1(je,_      ,L9)
        INSN2(test,l    ,R(eax),R(eax))
        INSN1(je,_      ,L61)
        INSN2(cmp,l     ,NUM(2),R(eax))
        INSN1(je,_      ,L62)
        INSN2(cmp,l     ,NUM(3),R(eax))
        INSN1(je,_      ,L62)
        INSN2(cmp,l     ,NUM(4),R(eax))
        INSN1(je,_      ,L62)
        INSN2(cmp,l     ,NUM(5),R(eax))
        INSN1(je,_      ,L63)
        INSN2(cmp,l     ,NUM(6),R(eax))
        INSN1(je,_      ,L63)
        INSN2(cmp,l     ,NUM(7),R(eax))
        INSN1(je,_      ,L61)
        INSN2(cmp,l     ,NUM(8),R(eax))
        INSN1(je,_      ,L61)
        INSN2(cmp,l     ,NUM(9),R(eax))
        INSN1(je,_      ,L61)
        INSN2(cmp,l     ,NUM(10),R(eax))
        INSN1(je,_      ,L61)
        INSN2(mov,l     ,X4 MEM_DISP(esi,12),R(ecx))
        INSN2(lea,l     ,X4 MEM_DISP(ecx,-11),R(eax))
        INSN2(cmp,l     ,NUM(1),R(eax))
        INSN1(jbe,_     ,L64)
        INSN2(cmp,l     ,NUM(15),R(ecx))
        INSN1(je,_      ,L61)
        INSN2(cmp,l     ,NUM(16),R(ecx))
        INSN1(jne,_     ,L9)
        INSN2(mov,l     ,X4 MEM_DISP(esi,4),R(eax))
        INSN2(test,b    ,NUM(1),R(al))
        INSN1(je,_      ,L39)
        INSN2(mov,l     ,X4 MEM_DISP(esi,16),R(eax))
        INSN2(cmp,l     ,NUM(1),R(eax))
        INSN1(jne,_     ,L40)
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,b     ,X1 MEM(ebx),R(al))
        INSN2(mov,b     ,R(al),X1 MEM(edx))
        INSN1(jmp,_     ,L9)
L40:
        INSN2(cmp,l     ,NUM(2),R(eax))
        INSN1(jne,_     ,L42)
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,w     ,X2 MEM(ebx),R(ax))
        INSN2(mov,w     ,R(ax),X2 MEM(edx))
        INSN1(jmp,_     ,L9)
L42:
        INSN2(cmp,l     ,NUM(4),R(eax))
        INSN1(jne,_     ,L44)
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,l     ,X4 MEM(ebx),R(eax))
        INSN2(mov,l     ,R(eax),X4 MEM(edx))
        INSN1(jmp,_     ,L9)
L44:
        INSN2(cmp,l     ,NUM(8),R(eax))
        INSN1(jne,_     ,L46)
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,l     ,X4 MEM(ebx),R(eax))
        INSN2(mov,l     ,R(eax),X4 MEM(edx))
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,l     ,X4 MEM_DISP(ebx,4),R(eax))
        INSN2(mov,l     ,R(eax),X4 MEM_DISP(edx,4))
        INSN1(jmp,_     ,L9)
L46:
        INSN2(add,l     ,NUM(3),R(eax))
        INSN2(mov,l     ,R(eax),R(ecx))
        INSN2(shr,l     ,NUM(2),R(ecx))
        INSN1(dec,l     ,R(ecx))
        INSN1(js,_      ,L9)
L50:
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(edx))
        INSN2(mov,l     ,X4 MEM_SHINDEX(ebx,ecx,4),R(eax))
        INSN2(mov,l     ,R(eax),X4 MEM_SHINDEX(edx,ecx,4))
        INSN1(dec,l     ,R(ecx))
        INSN1(jns,_     ,L50)
        INSN1(jmp,_     ,L9)
L39:
        INSN2(test,b    ,NUM(2),R(ah))
        INSN1(je,_      ,L9)
        INSN2(mov,l     ,X4 MEM_DISP(esi,16),R(eax))
        INSN2(cmp,l     ,NUM(1),R(eax))
        INSN1(jne,_     ,L54)
L62:
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN2(mov,b     ,R(bl),X1 MEM(eax))
        INSN1(jmp,_     ,L9)
L54:
        INSN2(cmp,l     ,NUM(2),R(eax))
        INSN1(jne,_     ,L56)
L63:
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN2(mov,w     ,R(bx),X2 MEM(eax))
        INSN1(jmp,_     ,L9)
L56:
        INSN2(cmp,l     ,NUM(4),R(eax))
        INSN1(jne,_     ,L58)
L61:
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN2(mov,l     ,R(ebx),X4 MEM(eax))
        INSN1(jmp,_     ,L9)
L58:
        INSN2(cmp,l     ,NUM(8),R(eax))
        INSN1(jne,_     ,L9)
L64:
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN2(mov,l     ,R(ebx),X4 MEM(eax))
        INSN2(mov,l     ,X4 MEM_DISP(esi,8),R(eax))
        INSN2(mov,l     ,R(edx),X4 MEM_DISP(eax,4))
L9:
        INSN2(xor,l     ,R(eax),R(eax))
        INSN2(lea,l     ,X4 MEM_DISP(ebp,-8),R(esp))
        INSN1(pop,l     ,R(ebx))
        INSN1(pop,l     ,R(esi))
        INSN2(mov,l     ,R(ebp),R(esp))
        INSN1(pop,l     ,R(ebp))
        ret
FUNEND()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]