aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arc/linux.h
AgeCommit message (Collapse)AuthorFilesLines
2023-01-02Update copyright years.Jakub Jelinek1-1/+1
2022-10-06arc: Remove max-page-size and common-page-size forced settingClaudiu Zissulescu1-1/+0
Max page size is defined in the ARC's BFD file, and the common page size is also set by the appropriate binutils macros. Remove them from LINK_SPEC. 2022-10-06 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/linux.h (LINK_SPEC): Remove max-page-size and common-pave-size. Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
2022-01-03Update copyright years.Jakub Jelinek1-1/+1
2021-01-04Update copyright years.Jakub Jelinek1-1/+1
2020-03-31arc: Allow more ABIs in GLIBC_DYNAMIC_LINKERClaudiu Zissulescu1-1/+2
Enable big-endian suffixed dynamic linker per glibc multi-abi support. And to avoid a future churn and version pairingi hassles, also allow arc700 although glibc for ARC currently doesn't support it. gcc/ xxxx-xx-xx Vineet Gupta <vgupta@synopsys.com> * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700
2020-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r279813
2019-03-18[ARC] Enable code density frame option for elf targets.Claudiu Zissulescu1-0/+4
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.opt (mcode-density-frame): Get the inital value from TARGET_CODE_DENSITY_FRAME_DEFAULT. * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to match what the ops is doing. (push_multi_fp_blink): Likewise. * config/arc/arc.c (arc_override_options): Enable enter/leave when compiling for size and elf target. (arc_save_callee_enter): Adjust note to match what enter/leave operation does. From-SVN: r269758
2019-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r267494
2018-11-13[ARC] Add support for profiling in glibc.Claudiu Zissulescu1-0/+10
Use PROFILE_HOOK to add mcount library calls in each toolchain. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. * config/arc/elf.h (PROFILE_HOOK): Define. * config/arc/linux.h (PROFILE_HOOK): Likewise. From-SVN: r266068
2018-09-17[ARC] Update LINK_EH_SPEC linker spec.Alexey Brodkin1-1/+1
With no trailing space in LINK_EH_SPEC linker spec gets generated as: ------------------------>8--------------------- %{!r:--build-id} --eh-frame-hdr%{h*} ... ------------------------>8--------------------- or even worse if hash style is added: ------------------------>8--------------------- %{!r:--build-id} --eh-frame-hdr--hash-style=sysv %{h*} ... ------------------------>8--------------------- Now if that spec is really used by LD then it fails inevitably saying that it doesn't know option "--eh-frame-hdr--hash-style=sysv". 2018-09-17 Alexey Brodkin <abrodkin@synopsys.com> * config/arc/linux.h (LINK_EH_SPEC): Add missing space. From-SVN: r264361
2018-04-30[ARC] Clear the instruction cache using syscalls.Claudiu Zissulescu1-0/+14
Clear the instruction cache from `beg' to `end'. This makes an inline system call to SYS_cacheflush. gcc/ 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/linux.h (CLEAR_INSN_CACHE): Define. From-SVN: r259764
2018-01-26[ARC] Add support for reduced register file setClaudiu Zissulescu1-0/+9
gcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-arches.def: Option mrf16 valid for all architectures. * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. * config/arc/arc-options.def (FL_RF16): Add mrf16 option. * config/arc/arc-tables.opt: Regenerate. * config/arc/arc.c (arc_conditional_register_usage): Handle reduced register file case. (arc_file_start): Set must have build attributes. * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using mrf16 option value. * config/arc/arc.opt (mrf16): Add new option. * config/arc/elf.h (ATTRIBUTE_PCS): Define. * config/arc/genmultilib.awk: Handle new mrf16 option. * config/arc/linux.h (ATTRIBUTE_PCS): Define. * config/arc/t-multilib: Regenerate. * doc/invoke.texi (ARC Options): Document mrf16 option. libgcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/lib1funcs.S (__udivmodsi4): Use safe version for RF16 option. (__divsi3): Use RF16 safe registers. (__modsi3): Likewise. From-SVN: r257083
2018-01-26[ARC] Add JLI support.Claudiu Zissulescu1-0/+1
The ARCv2 ISA provides the JLI instruction, which is two-byte instructions that can be used to reduce code size in an application. To make use of it, we provide two new function attributes 'jli_always' and 'jli_fixed' which will force the compiler to call the indicated function using a jli_s instruction. The compiler also generates the entries in the JLI table for the case when we use 'jli_always' attribute. In the case of 'jli_fixed' the compiler assumes a fixed position of the function into JLI table. Thus, the user needs to provide an assembly file with the JLI table for the final link. This is usefully when we want to have a table in ROM and a second table in the RAM memory. The jli instruction usage can be also forced without the need to annotate the source code via '-mjli-always' command. gcc/ 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> John Eric Martin <John.Martin@emmicro-us.com> * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. * config/arc/arc.c (_arc_jli_section): New struct. (arc_jli_section): New type. (rc_jli_sections): New static variable. (arc_handle_jli_attribute): New function. (arc_attribute_table): Add jli_always and jli_fixed attribute. (arc_file_end): New function. (TARGET_ASM_FILE_END): Define. (arc_print_operand): Reuse 'S' letter for JLI output instruction. (arc_add_jli_section): New function. (jli_call_scan): Likewise. (arc_reorg): Call jli_call_scan. (arc_output_addsi): Remove 'S' from printing asm operand. (arc_is_jli_call_p): New function. * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm operand. (movhi_insn): Likewise. (movsi_insn): Likewise. (movsi_set_cc_insn): Likewise. (loadqi_update): Likewise. (load_zeroextendqisi_update): Likewise. (load_signextendqisi_update): Likewise. (loadhi_update): Likewise. (load_zeroextendhisi_update): Likewise. (load_signextendhisi_update): Likewise. (loadsi_update): Likewise. (loadsf_update): Likewise. (movsicc_insn): Likewise. (bset_insn): Likewise. (bxor_insn): Likewise. (bclr_insn): Likewise. (bmsk_insn): Likewise. (bicsi3_insn): Likewise. (cmpsi_cc_c_insn): Likewise. (movsi_ne): Likewise. (movsi_cond_exec): Likewise. (clrsbsi2): Likewise. (norm_f): Likewise. (normw): Likewise. (swap): Likewise. (divaw): Likewise. (flag): Likewise. (sr): Likewise. (kflag): Likewise. (ffs): Likewise. (ffs_f): Likewise. (fls): Likewise. (call_i): Remove 'S' asm letter, add jli instruction. (call_value_i): Likewise. * config/arc/arc.op (mjli-always): New option. * config/arc/constraints.md (Cji): New constraint. * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm operand. (subsf3_fpx): Likewise. (mulsf3_fpx): Likewise. * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing asm operand. * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' function attrbutes. * doc/invoke.texi (ARC): Document mjli-always option. gcc/testsuite 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/jli-1.c: New file. * gcc.target/arc/jli-2.c: Likewise. Co-Authored-By: John Eric Martin <John.Martin@emmicro-us.com> From-SVN: r257081
2018-01-03Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r256169
2017-11-17[ARC] Update GLIBC_DYNAMIC_LINKERVineet Gupta1-1/+1
Update GLIBC_DYNAMIC_LINKER per glibc upstreaming review comments: http://lists.infradead.org/pipermail/linux-snps-arc/2017-June/002634.html gcc/ * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc upstreaming review comments From-SVN: r254866
2017-11-03[ARC] Fix to unwinding.Cupertino Miranda1-0/+8
gcc/ChangeLog: 2017-11-03 Cupertino Miranda <cmiranda@synopsys.com> * config/arc/arc.c (arc_save_restore): Corrected CFA note. (arc_expand_prologue): Restore blink for millicode. * config/arc/linux.h (LINK_EH_SPEC): Defined. libgcc/ChangeLog: 2017-11-03 Cupertino Miranda <cmiranda@synopsys.com> Vineet Gupta <vgupta@synopsys.com> * config.host (arc*-*-linux*): Set md_unwind_header variable. * config/arc/linux-unwind-reg.def: New file. * config/arc/linux-unwind.h: Likewise. Co-Authored-By: Vineet Gupta <vgupta@synopsys.com> From-SVN: r254367
2017-07-17[ARC] Enable indexed loads for elf targers.Claudiu Zissulescu1-0/+8
Enable indexed loads only for elf target, as the linux ones need more testing. gcc/ 2017-02-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.opt (mindexed-loads): Use initial value TARGET_INDEXED_LOADS_DEFAULT. (mauto-modify-reg): Use initial value TARGET_AUTO_MODIFY_REG_DEFAULT. * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define. (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define. (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. From-SVN: r250274
2017-03-28[ARC] Define _REENTRANT when -pthread is passed.Claudiu Zissulescu1-0/+5
The compiler is supposed to have the builtin defined _REENTRANT defined when -pthread is passed, which wasn't done on the ARC architecture. When _REENTRANT is not passed, the C library will not use reentrant functions, and the latest version of ax_pthread.m4 from the autoconf-archive will no longer detect that thread support is available (see https://savannah.gnu.org/patch/?8186). gcc/ 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec. (EXTRA_SPECS): Define. (SUBTARGET_EXTRA_SPECS): Likewise. (SUBTARGET_CPP_SPEC): Likewise. * config/arc/elf.h (EXTRA_SPECS): Renamed to SUBTARGET_EXTRA_SPECS. * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define. Co-Authored-By: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> From-SVN: r246524
2017-03-27[ARC] Disable TP register when building for bare metal.Claudiu Zissulescu1-0/+4
gcc/ 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define. * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise. * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT. From-SVN: r246497
2017-02-27[ARC] Clean up arc header file.Claudiu Zissulescu1-0/+76
gcc/ 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com> * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and arc/linux.h headers. * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove. (LINK_SPEC): Likewise. (ARC_TLS_EXTRA_START_SPEC): Likewise. (EXTRA_SPECS): Likewise. (STARTFILE_SPEC): Likewise. (ENDFILE_SPEC): Likewise. (LIB_SPEC): Likewise. (TARGET_SDATA_DEFAULT): Likewise. (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise. (MULTILIB_DEFAULTS): Likewise. (DWARF2_UNWIND_INFO): Likewise. * config/arc/big.h: New file. * config/arc/elf.h: Likewise. * config/arc/linux.h: Likewise. * config/arc/t-uClibc: Remove. From-SVN: r245759