Hi All,
While playing with JIT on Suns, I've found out that the following pasm code:
set I1, 2
LOOP: sub I1, 1
if I1, LOOP
print "end\n"
end
never finishes.. that is: parrot -j loop.pasm hangs forever (never printing
'end') while the non-jitted "parrot loop.pasm" prints 'end' and finishes
there as expected.
Can anybody give me some hints as to what is going on there? :)
Thanks,
Stephane
PS.: placing a 'print I1' within the loop resolves the problem, both jitted
and non jitted finishing properly in that case. Instead 'noop', 'set <some>'
or else within the loop dont help the jitted case and hangs again..
set I1, 2
LOOP: sub I1, 1
if I1, LOOP
print "end\n"
end
# -- Sun/SPARC-V9 - Solaris 9
Summary of my parrot 0.0.13 configuration:
configdate='Sun Feb 8 15:33:49 2004'
Platform:
osname=solaris, archname=sun4-solaris
jitcapable=1, jitarchname=sun4-solaris,
jitosname=SOLARIS, jitcpuarch=sun4
execcapable=0
perl=perl
Compiler:
cc='gcc', ccflags=' -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
Linker and Libraries:
ld='gcc', ldflags=' -L/usr/local/lib ',
cc_ldflags='',
libs='-lsocket -lnsl -ldl -lm -lpthread -lrt'
Dynamic Linking:
so='.so', ld_shared='-G -L/usr/local/lib',
ld_shared_flags=''
Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=4 byteorder=4321,
nv=double, numvalsize=8, doublesize=8