Fix two testsuite failures on k6-pc-linux-gnu

Jeff Law law@porcupine.slc.redhat.com
Tue Jul 2 11:41:00 GMT 2002


 In message <002001c2215c$47fbfe40$5fbe53d4@zephyr>, "Eric Botcazou" writes:
 >So, if the mechanism worked before Jan's patch and works for other ports,
 >it's purely by chance ?
Yes/No.   Before Jan's patch it was trivial for genattrtab to determine
that the length of that instruction varies.  Thus it knew that it had
to recompute lengths at least once after the initial guesses were done.
It's also the case that when the length varies, the shorten-branches
code will assume the longest length during its first pass.

After Jan's patch it is not trivial for genattrtab to determine that
the length of the instruction varies, nor is it easy for genattrtab
to determine what the maximium length ought to be during the first
pass of shorten-branches.

 >I don't understand: -0xae is certainly not within the range of the 'loop'
 >instruction. Do you mean that it appears to GCC as being within the range ?
My goof.  Ignore that part of the analysis.  genattrtab marks the instruction
as not having a variable length and that it's length is 2 bytes.

If you look at how the length computation works in the ia32 port there
isn't really a good way for genattrtab to determine what insns have
variable length and what their maximum length value ought to be as
so much stuff is implemented in C functions.  Luckily most instructions
in the ia32 port don't actually care how long they are -- only the loop
insn modifies its output based on its computed length.

jeff




More information about the Gcc-patches mailing list