From: claziss <claz...@synopsys.com> Hi,
There is an issue with 'h'- register class for ARCv2, which accepts only the first 32 general purposes registers as oposite to the ARCv1 which accepts all 64 GPRs. Fix this issue in two patches for CMP and ADD instructions. Also, allow the compiler to use extra GPRs if they are available and mark D0, D1 registers fixed when not available. Fix also C++ calling multiple inheritances when compiling for PIC, and allow addresses to use Rx + @symbol. -- Claudiu Zissulescu (7): [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for CMP insns. [ARC] Differentiate between ARCv1 and ARCv2 'h'-reg class for ADD insns. [ARC] Allow extension core registers to be used for addresses. [ARC] Make D0, D1 double regs fix when not used. [ARC] Use ACCL, ACCH registers whenever they are available. [ARC] [Cxx] Fix calling multiple inheritances. [ARC] Addresses can use long immediate for offsets. gcc/config/arc/arc.c | 124 +++++++++++++++++++++++++++++++++---------- gcc/config/arc/arc.h | 20 ++++--- gcc/config/arc/arc.md | 28 +++++----- gcc/config/arc/predicates.md | 13 +++++ 4 files changed, 135 insertions(+), 50 deletions(-) -- 1.9.1