Reg Alloc Problem.
Umesh Kalappa
umesh.kalappa0@gmail.com
Wed Mar 12 14:00:00 GMT 2014
Hi All,
We are porting the gcc 4.8.1 to the new target and which has the pair
16 bit registers like AB or CD or EF and we modeled it in
reg_class as AB,CD and DE 16 bit pair_regs and CD ,EF as 16 bit
base_regs and A,B,C,D E and F as 8 bit as general_regs.
We are stuck with below issues like
1)How do we modelled such that the register alloc to pick the
respective base_regs i.e CD,DE instead of AB as show in the below
case
LD AB ,_a; //invalid instead of it should be emit LD CD ,_a
LD (AB),#100; // invalid instead of it should be emit LD (CD),#100
Please note that we override the target hook like REGNO_REG_CLASS
,but still no luck here .
2)Current target enforce the restrictions on the pair register set
usage for multiplication like
MUL A,B or MUL C,D or MUL E,F
But not MUL A,C or MUL B,C etc not across the pair_regs .
Anyone can please shed some lights here ,will be appreciate and help
us in the great way .
Thank you for the patience
~Umesh
More information about the Gcc
mailing list