This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] [ARC] Add checking for LP_COUNT reg usage, improve error reporting.


The mail server didn't let me to send the patch in clear, thus I needed to compress it.  Sorry for the large patch, but it mainly changes a number of instruction attributes. 
Here it is the original message:

The loop count register (LP_COUNT) is used for zero delay loops. We
should not use LP_COUNT as a general purpose register because LP_COUNT
maybe decremented if the program counter equals the loop end

We should also not use the LP_COUNT register as the destination of
multi-cycle instruction, including multicycle extension
instructions. A multi-cycle instruction writing to the
LP_COUNT register raises an Illegal Instruction exception.  The
following instructions are considered as multi-cycle instructions:
	  - Load operations
	  - LR instructions
	  - Multiply and Divide instructions
	  - Multi-cycle non-blocking extension instructions

This proposed patch adds extra LP_COUNT checks for selected
instructions, and improves the error reporting of our assembler.

The patch is tested for LE/BE systems with ARC6xx, ARC7xx or ARCv2
cpu variations.

OK to apply?

Attachment: Add-checking-for-LP_COUNT-reg.tar.gz
Description: Add-checking-for-LP_COUNT-reg.tar.gz

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]