diff options
author | John David Anglin <dave@hiauly1.hia.nrc.ca> | 2002-12-05 01:57:27 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2002-12-05 01:57:27 +0000 |
commit | 9e1ab8c1a5a7ff3bd09136c309a3800ab96b5c96 (patch) | |
tree | fda007f92e35470b1291d41085ebd993dff2dde0 /gcc/config/pa/pa.md | |
parent | 16823694d5a03199161bfb60157a9a6e3a2ee697 (diff) | |
download | gcc-9e1ab8c1a5a7ff3bd09136c309a3800ab96b5c96.zip gcc-9e1ab8c1a5a7ff3bd09136c309a3800ab96b5c96.tar.gz gcc-9e1ab8c1a5a7ff3bd09136c309a3800ab96b5c96.tar.bz2 |
fptr.c (__canonicalize_funcptr_for_compare): New file and function.
* pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function.
* pa.md (canonicalize_funcptr_for_compare): Output library call to
canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32.
* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL,
CTOR_LIST_BEGIN): New defines.
* pa/t-linux (LIB2FUNCS_EXTRA): New define.
(fptr.c): Add make rules.
From-SVN: r59842
Diffstat (limited to 'gcc/config/pa/pa.md')
-rw-r--r-- | gcc/config/pa/pa.md | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index cd28ce8..640196b 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -7277,9 +7277,20 @@ (clobber (reg:SI 31))]) (set (match_operand:SI 0 "register_operand" "") (reg:SI 29))] - "! TARGET_PORTABLE_RUNTIME && !TARGET_64BIT && !TARGET_ELF32" + "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT" " { + if (TARGET_ELF32) + { + rtx canonicalize_funcptr_for_compare_libfunc + = init_one_libfunc (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL); + + emit_library_call_value (canonicalize_funcptr_for_compare_libfunc, + operands[0], LCT_NORMAL, Pmode, + 1, operands[1], Pmode); + DONE; + } + operands[2] = gen_reg_rtx (SImode); if (GET_CODE (operands[1]) != REG) { |