This is the mail archive of the gcc@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]

Re: Implementing VMX128 AltiVec Variant


Gordan Bobic wrote:
On Tue, 21 Aug 2007, Ian Lance Taylor wrote:

With the modifications I made, GCC still compiled fine. However,
libgcc and libstdc++ DO still get build with the missing instructions
(according to objdump -D). Why is that? Is that a consequence of the
ADA files? Or something else? Where should I look? Is the it ada files
that are the cause of the problem I'm seeing?

It must be something else. I'm not sure what, though. It might be something as simple as an instruction built from substrings. For example, search for altivec_vmsumu<VI_char>m in altivec.md.

I just re-checked for that and I can't find any. I have attached a diff for my modified altivec.h, altivec.md and rs6000.c files. Patch in gcc/config/rs6000 subtree with -p1.


Can anyone think of anywhere else I should be looking? Where else could these instructions be coming from?

This is really not relevant to the posted patch; however, I'll still post it here.


The proper way to disable Altivec instructions is to leave altivec.h and rs6000.c aside, and just change the "TARGET_ALTIVEC" to something like "(TARGET_ALTIVEC && 0)". The remaining code will automagically be disabled.

Later, you can add your option and the corresponding TARGET_VMX128 mask, and go back replacing the "TARGET_ALTIVEC && 0" with "TARGET_ALTIVEC && !TARGET_VMX128".

Paolo


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