This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> I have the most recent releases: binutils 2.13.2.1and gcc 3.2.2. > I now tried with 'arm920', which is accepted by the assembler. > Unfortunately I have little idea, of how different each of these > processors are... > > facit: 'arm920t' is a valid flag to gcc, but doesn't seem to be accepted > even by the newest assembler, - this leaves one to speculate, how it was > possible to test this flag in the first place? or am I wrong? > > So, do you think, -mcpu=arm920 -mtune=arm920t would be the best > combination for an ARM920T? > The arm920 processor is not available without thumb, so the T in the name can be considered optional -- in later processors it is dropped altogether. Ok, you asked for it, here's the full gory story about the -m options in the ARM assembler... Traditionally, the assembler supported a cpu name with options of the form -m<cpuname> or -m<cpunumber> It also recognized some ARM Architecture versions with options of the form -marmv<N> or -mv<N> And recognized a limited number of cpu variants and architectures. The support for this was done in a hand-crafted parser that was full of nasty corner cases, and even then would allow some strings that weren't legal processors. Extending the option parser was becoming difficult since it wasn't clear what processors existed and what didn't. Additionally, gcc had to know how to map options of the form -mcpu=XXX etc into the assembler synax -mXXX, and how to handle certain combinations -- the result, as you have seen is that a lot of CPUS aren't recognized correctly. In order to clean this up I've deprecated all of the above assembler options and replaced them with a much cleaner table-driven version that supports options that are nearly identical to those that GCC accepts (for example, GCC's -mcpu=XXX option can now be passed directly to the assembler). However, all released versions of GCC are still trying to do the mapping to the old syntax, and we can't go back and change them now (time travel would be so handy at times :-). So to continue supporting old versions of GCC there is a legacy table of all the reasonable expansions that the old assembler interface supported, but this is now table-driven. I've included a list of all the CPUs that the legacy interface supports below. The list for the new interface is much more comprehensive, but there seems to be little point in extending the old list since older GCC releases can't really handle those processors that aren't in the existing list. Future releases of the assembler may turn on a warning if you try to use the old options (all the code to do this is in place, but it's disabled); that won't happen until a release or two of GCC using the new interface has been out for a while. Eventually the old options will disappear entirely. So, to answer your question: -mcpu=arm920 will be quite sufficient for your needs. R. CPU names recognized by the assembler using the old -m<cpuname> option: arm1 arm2 arm250 arm3 arm6 arm600 arm610 arm620 arm7 arm70 arm700 arm700i arm710 arm710c arm720 arm7d arm7di arm7m arm7dm arm7dmi arm7100 arm7500 arm7500fe arm7t arm7tdmi arm710t arm720t arm740t arm8 arm810 arm9 arm9tdmi arm920 arm940 strongarm strongarm110 strongarm1100 strongarm1110 xscale ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |