Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jan 2000 08:31:41 -0800 (PST)
From:      "David E. O'Brien" <obrien@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/contrib/gcc/config/i386 i386.md
Message-ID:  <200001221631.IAA66040@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
obrien      2000/01/22 08:31:41 PST

  Modified files:
    contrib/gcc/config/i386 i386.md 
  Log:
  I wanted to preserve this analysis of the bug fixed by the previous commit.
  
  From "Alexander N. Kabaev" <ak03@gte.com>:
  The problem is that default builtin_setjmp implementation does not restore
  any registers except for stack pointers when doing nonlocal jump. This
  means, that every platform, that needs to store/restore some other state
  between jumps, has to provide appropriate definitions for
  builtin_setjmp_setup and builtin_setjmp_receiver RTL expansions.
  
  Every plaftorm which needs to do some additional processing at setjmp
  receive point, such as restoring additional information previously saved by
  builtin_setjmp_setup, can provide definition for builtin_setjmp_receiver
  RTL expansion. [That is what the previous commit does.] The i386 code
  compiled with -fpic option requires the value of the PIC register (EBX) to
  be restored in order to function properly.  One should not provide
  expansion for builtin_setjmp_setup because GCC documentation explicitly
  states that values should be recalculated if possibe, rather than stored in
  setjmp buffer and proper value for EBX can easlity be determined from the
  current EIP contents.
  
  Revision  Changes    Path
  1.7       +1 -1      src/contrib/gcc/config/i386/i386.md



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001221631.IAA66040>