]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Handle stack split for x32
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 18 Dec 2014 19:09:28 +0000 (11:09 -0800)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 24 Aug 2017 12:46:32 +0000 (09:46 -0300)
commitd96df8d7f7845f3d038dd6945d2ffb5fd158042f
tree2e9c98c96ed5ff330d206eede93047530f899cb4
parent8ef35f9fe2087fdf127b0a32d9583418c24434fc
Handle stack split for x32

X32 uses cmp %fs:NN,%esp, lea NN(%rsp),%r10d, lea NN(%rsp),%r11d,
instead of cmp %fs:NN,%rsp, lea NN(%rsp),%r10, lea NN(%rsp),%r11.
This patch handles it.

PR gold/17729
* configure.ac (DEFAULT_TARGET_X86_64): Don't set for x32.
(DEFAULT_TARGET_X32): Set for x32.
* x86_64.cc (cmp_insn_32): New.
(lea_r10_insn_32): Likewise.
(lea_r11_insn_32): Likewise.
(cmp_insn_64): Likewise.
(lea_r10_insn_64): Likewise.
(lea_r11_insn_64): Likewise.
(Target_x86_64<size>::do_calls_non_split): Handle x32.
* testsuite/Makefile.am (check_SCRIPTS): Add split_x32.sh.
(check_DATA): Add split_x32 files.
(split_x32_[1234n].o): New targets.
(split_x32_[124]): New targets.
(split_x32_[1234r].stdout): New targets.
* testsuite/split_x32.sh: New file.
* testsuite/split_x32_1.s: Likewise.
* testsuite/split_x32_2.s: Likewise.
* testsuite/split_x32_3.s: Likewise.
* testsuite/split_x32_4.s: Likewise.
* testsuite/split_x32_n.s: Likewise.
* configure: Regenerated.
* testsuite/Makefile.in: Likewise.
12 files changed:
gold/ChangeLog
gold/configure
gold/configure.ac
gold/testsuite/Makefile.am
gold/testsuite/Makefile.in
gold/testsuite/split_x32.sh [new file with mode: 0755]
gold/testsuite/split_x32_1.s [new file with mode: 0644]
gold/testsuite/split_x32_2.s [new file with mode: 0644]
gold/testsuite/split_x32_3.s [new file with mode: 0644]
gold/testsuite/split_x32_4.s [new file with mode: 0644]
gold/testsuite/split_x32_n.s [new file with mode: 0644]
gold/x86_64.cc