[PATCH] Add support for armv6k subtarget
viniciustinti at gmail.com
Sat Mar 7 19:36:36 PST 2015
In http://reviews.llvm.org/D8126#135991, @rengolin wrote:
> Apart from my silly comment, looks good. I'd like Tim to have a look as well, since he has a better eye than I do for these things.
Right. I believe that there is more things to do but I would prefer to make small steps first and fix other things later.
For now this patch fixes arm1176jz-s, arm1176jzf-s and armv6k.
Comment at: include/llvm/Support/ARMBuildAttributes.h:102
@@ -101,4 +101,3 @@
v6 = 6, // e.g. ARM1136J_S
- v6KZ = 7, // e.g. ARM1176JZ_S
- v6T2 = 8, // e.g. ARM1156T2F_S
- v6K = 9, // e.g. ARM1136J_S
+ v6KZ = 7, // e.g. -
+ v6T2 = 8, // e.g. ARM1156T2_S
> That's actually ARM1176JZ_S, pure ARMv6K is more like MPCore. Ie. keep the comment. :)
The problem is that we have many subtargets and many processors and it is still fuzzy how to link them:
- arm1126j (never seen but there is one reference on ARM11 manual)
- arm1136j-s (revision 0)
- arm1136jf-s (revision 0)
- arm1136j-s (revision 1)
- arm1136jf-s (revision 1)
- v6core <== guessing a name
My guess of the best map:
- v6 -> arm1126j arm1136j-s (r0) arm1136jf-s (r0)
- v6j -> alias for v6
- v6k -> arm1136j-s (r1) arm1136jf-s (r1); inherits v6; adds HINT
- v6z -> arm1176jz-s arm1176jzf-s; inherits v6k; adds TRUSTZONE
- v6kz -> alias for v6z
- v6t2 -> arm1156t2-s arm1156t2f-s; inherits v6k; adds THUMB2
- v6core -> mpcorenovfp mpcore; inherits v6k; adds MULTICORE
This does not reflect this patch because:
- I'm ignoring that a arm1136 revisions can be v6k. Hence I'm being really strict in keeping the old behavior of LLVM that is to not allow HINT on this arm1136.
- There is no support for MULTICORE and TRUSTZONE on the backend or I am afraid to use them and break things. Therefore I am merging mpcore and arm1176 as one being.
What do you think? For now I will do as you suggested but would be great to organize this later.
More information about the llvm-commits