x86 jitter? (One more try!)

Ian Piumarta Ian.Piumarta at inria.fr
Sun Apr 8 03:12:42 UTC 2001


On Sat, 7 Apr 2001, Raab, Andreas wrote:
> 
> compile.cc: in `void gen_compile()'
> compile.cc:1111: phase error at sPC 26: 0084F18D r.d.. 1<  41 0084F1A8
> LdTemp 1
> 
> (whatever that means ;-)

That means (I'm assuming you can figure out everything up to and including
the third `:' for yourself ;-) :

 phase error
	the address of the translated code for this instruction recorded
        during the first pass of code generation was different to the
	address observed during the second pass

 at sPC 26:
	this is the sam (Squeak Abstract Machine) PC for the offending
	instruction (the insn at which the problem was noticed, not
	necessarily the insn that caused the problem)

 0084F18D
	this is the address of the 26th insn seen during the second
	codegen pass (it's therefore the 25th that caused the problem, by
	having differently-sized code on the second pass -- possibly a
	short/long branch range thing on the 386???)

 r	this insn is a join of two or more control flows
 .	this insn is not preceded by an unconditional control transfer
 d	this insn is the destination of a control transfer
 .	this insn does not have an ambiguous stack depth
 .	this insn is not squashed after being subsumed by a
		"macro" insn preceding it

 1<	one non-linear flow of control arrives at this insn

 41	this is the virtual PC (offset of the corresponding bytecode in
	the original CompiledMethod) of this insn

 0084F1A8
	this is the native PC (translated code address) the insn recorded
	during the codegen first pass

 LdTemp 1
	the sam opcode at which the problem was noticed (not the one
	that caused the problem, but the one after it)

FWIW, 0084F1A8 - 0084F18D = 27 additional bytes compiled for the 25th
insn during the second pass, which seems *huge*.  If you have a copy
of GNU libopcodes then you can define DSM_LISTING in compile.cc, link
against libopcodes.a, and j3 will dump a disassembly listing of the
translated code as it is generated, one sam insn at a time -- which is
often invaluable for tracking down the cause of this kind of problem.

I hope some of that turns out to be of use.

Ian





More information about the Squeak-dev mailing list