Implementing VMX128 AltiVec Variant
Paolo Bonzini
bonzini@gnu.org
Wed Aug 22 09:48:00 GMT 2007
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
More information about the Gcc
mailing list