This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fix mips out-of-range branches


On Dec 11, 2002, Alexandre Oliva <aoliva@redhat.com> wrote:

> +  if (flag_pic && ! TARGET_EMBEDDED_PIC)
> +    {
> +      if (get_attr_length (insn) == 4)
> +	return \"%*b\\t%l0\";
> +      else if (Pmode == DImode)
> +	return \"%[dla\\t%@,%l0\;%*jr\\t%@%]\";
> +      else
> +	return \"%[la\\t%@,%l0\;%*jr\\t%@%]\";
> +    }

s/== 4/<= 8/, such that, if the delay slot of the jump is not filled,
the adjusted length of 8 doesn't prevent us from emitting a branch.

Re-bootstrapped and retested on irix6.5, also with visual inspection
of some assembly code.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]