[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