duchier@ps.uni-sb.de writes:
> aha! so doubling the % for %%hi() and %%lo() is key. Thanks a lot for
> figuring this out. BTW, you also put some tabs in there: are these
> necessary?
aha! you missed the other fix, "=m" puts brackets [ ] around the
operand, "=r" doesn't. I can't pretend to understand from the gcc
manual whether that is the right fix ....
I did try (something like) the fix but I got problems linking, output
below. It takes our decrepit sun system a long time to get to that
stage so if you can spot the problem let me know asap.
I don't know if the tabs are necessary, it was something I tried. I
got the idea from the gcc manual, which says:
You can put multiple assembler instructions together in a single asm
template, separated by the characters normally used in assembly code
for the system. A combination that works in most places is a newline
to break the line, plus a tab character to move to the instruction
field (written as \n\t).
Anyway, it makes the output of -fverbose-asm look nice ;-)
k
linking prob:
c++ -DHAVE_CONFIG_H -I. -I/ingi/staff/glynn/MOZART/inline-opcode-map/mozart/platform/emulator -fno-exceptions -fno-implicit-templates -O3 -pipe -fschedule-insns2 -fregmove -mcpu=v8 -fdelayed-branch -c -o alice.o /ingi/staff/glynn/MOZART/inline-opcode-map/mozart/platform/emulator/alice.cc
c++ -o emulator.exe stack.o ozostream.o hashtbl.o iso-ctype.o refsarray.o tagged.o value.o atoms.o dictionary.o extension.o bitarray.o word.o ozthread.o heapchunk.o bytedata.o bits.o susplist.o var_base.o var_ext.o var_simple.o var_future.o var_opt.o namer.o weakdict.o os.o unix.o urlc.o ioHandler.o am.o unify.o indexing.o codearea.o trail.o emulate.o scheduler.o copycode.o opcodes.o controlvar.o prop_int.o prop_class.o thr_stack.o
thr_class.o thr_pool.o susp_queue.o thr_int.o suspendable.o g-collect.o cmem.o mem.o liveness.o board.o distributor.o cpi.o cpi_fd.o cpi_prop.o cpi_filter.o cpi_fs.o cpi_expect.o cpi_misc.o cpi_stream.o cpi_profile.o cpi_ct.o var_ct.o fdomn.o var_fd.o var_bool.o fset.o var_fs.o var_of.o gname.o site.o gentraverser.o marshalerBase.o pickleBase.o marshalerPatch.o marshalerDict.o pickle.o components.o componentBuffer.o byteBuffer.o main.o version.o statisti.o print.o base.o ozconfig.o foreign.o dpInterface.o boot-manager.o builtins.o vprops.o debug.o interFault.o system.o alice.o -L. -lz -lgmp -ldl -lm -lsocket -lnsl
Undefined first referenced
symbol in file
TRUE_TASKCATCH emulate.o
TRUE_MOVEMOVEXYYX emulate.o
TRUE_MOVEMOVEXYXY emulate.o
TRUE_ENDOFCHUNK emulate.o
TRUE_DECONSCALLX emulate.o
TRUE_DECONSCALLY emulate.o
TRUE_DECONSCALLG emulate.o
TRUE_GETVOID emulate.o
TRUE_TESTBI emulate.o
TRUE_UNIFYLITERAL emulate.o
TRUE_SETSELFG emulate.o
TRUE_TESTNUMBERG emulate.o
TRUE_TESTNUMBERX emulate.o
TRUE_TESTNUMBERY emulate.o
TRUE_UNIFYVOID emulate.o
TRUE_TESTLT emulate.o
TRUE_TESTLE emulate.o
TRUE_CLEARY emulate.o
TRUE_POPEX emulate.o
TRUE_PROFILEPROC emulate.o
TRUE_CONSCALLX emulate.o
etc.
-
Please send submissions to hackers@mozart-oz.org
and administriva mail to hackers-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.