aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/lib/java
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2025-07-07 23:57:02 -0300
committerAlexandre Oliva <oliva@gnu.org>2025-07-07 23:57:02 -0300
commita90dad293ce4919a44b20a4a329551c4b9e1348f (patch)
treec1df485896f2664b1f02e6a11300dd67f17ed4ab /libjava/classpath/lib/java
parent477abe67d34f7f8d1b0b12408e08769995b6ca9e (diff)
downloadgcc-a90dad293ce4919a44b20a4a329551c4b9e1348f.zip
gcc-a90dad293ce4919a44b20a4a329551c4b9e1348f.tar.gz
gcc-a90dad293ce4919a44b20a4a329551c4b9e1348f.tar.bz2
[vxworks] [x86] disable vxworks6 PIC on vxworks7
VxWorks6 used symbols __GOTT_BASE__ and __GOTT_INDEX__ to obtain the address of the global offset table. Starting with VxWorks7, that is no longer the case, but we've still issued these symbols in output_set_got. Do that only with VxWorks<7. Switching to the call-based PIC register sequence, we have to set the flag that prevents the use of the red zone, and AFAICT the reasons that ruled out GOTOFF and other relative addressing no longer apply to VxWorks7+. for gcc/ChangeLog * config/vxworks-dummy.h (TARGET_VXWORKS_VAROFF): New. (TARGET_VXWORKS_GOTTPIC): New. * config/vxworks.h (TARGET_VXWORKS_VAROFF): Override. (TARGET_VXWORKS_GOTTPIC): Likewise. * config/i386/i386.cc (output_set_got): Disable VxWorks6 GOT sequence on VxWorks7. (legitimize_pic_address): Accept relative addressing of labels on VxWorks7. (ix86_delegitimize_address_1): Likewise. (ix86_output_addr_diff_elt): Likewise. * config/i386/i386.md (tablejump): Likewise. (set_got, set_got_labelled): Set no-red-zone flag on VxWorks7. * config/i386/predicates.md (gotoff_operand): Test TARGET_VXWORKS_VAROFF.
Diffstat (limited to 'libjava/classpath/lib/java')
0 files changed, 0 insertions, 0 deletions