[MLton] bug with packed representations
Stephen Weeks
MLton@mlton.org
Fri, 23 Apr 2004 01:22:24 -0700
I've got the packed representations mostly working. All the
regressions pass with -representation packed -native false except for
fixed-integer.sml (because I haven't got the weird-size integers
working yet). With -native true, a couple of the regressions (size,
stringcvt) give an x86Validate warning and die during assembly. I've
included the output for size below.
Matthew, can you tell if this is a bug in the x86 codegen or in the
Machine program being fed to the codegen?
testing size
movb %edi,%dh
.p2align 4
L_889:
L_973:
movb %edi,%dh
shrb $0x2,%dh
andb $0x1,%dh
L_974:
movl ((gcState+200)+(0*4)),%esi
cmpl $0,%esi
jle L_891
L_975:
decl %esi
movl %esi,((gcState+200)+(0*4))
L_976:
testb %dh,%dh
jnz L_890
L_977:
movl $L_978,(0+((0*1)+(0*1)))(%ebp)
movl $13,(0+((44*1)+(0*1)))(%ebp)
movl $0,(0+((48*1)+(0*1)))(%ebp)
movl $1,(0+((52*1)+(0*1)))(%ebp)
movl (0+((12*1)+(0*1)))(%ebp),%esi
movl %esi,(0+((56*1)+(0*1)))(%ebp)
addl $44,%ebp
movl $L_979,(0+(-1*4))(%ebp)
jmp x_5
x86Validate.validate::validate: MOV, srcsize
/tmp/cckAaGJO.s: Assembler messages:
/tmp/cckAaGJO.s:2847: Error: suffix or operands invalid for `mov'
call to system failed with exit status 1:
gcc -c -o /tmp/fileXFQNfc.o /tmp/fileW2a98p.0.S
compilation of size failed with -warn-match false -debug false -gc-check limit -representation packed -native true -type-check true