This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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] |
The J2 Core is an open hardware cpu implementing the SH-2 instruction set, with the addition of barrel shift instructions and an atomic compare-and-swap instruction. This patch adds a cpu model option -mj2 to the sh target. Presently all it does is enable use of the barrel shift instructions (and turns off assembler checking of the ISA via --isa=any) but I will eventually add support for the new CAS instruction as a new -matomic-model for use by the __sync and __atomic builtins. I've used the the name "J2" and "-mj2" rather than treating it as a submodel variant of "sh2" ("SH2J" and "-m2j") because the official name of this cpu model is "J2", with the intent of not misrepresenting it as a Renesas product. However I'd like feedback from GCC's side on how GCC wants to identify J2 in cpu model options, tuples, and internally; that part is not set in stone. The --isa=any passed to the assembler probably needs to be fixed before this patch is ready for upstream (although I'd really just prefer _always_ passing --isa=any to the assembler, since the current behavior breaks runtime-switching implementations, which I need). One complication is that passing --isa=j2 will fail with old binutils; I'm not sure if this should be detected and handled or if we should just require up-to-date binutils to use -mj2. In any case, I don't yet have an assembler-side patch to add the --isa level. I know this isn't ready for upstream yet but I'd appreciate feedback on the patch so far and anything that I need to change in order for it to be acceptable. Rich
Attachment:
0004-j2.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |