On 21/05/14 16:21, Marcus Shawcroft wrote: > On 15 May 2014 06:54, Kugan <kugan.vivekanandara...@linaro.org> wrote: >> Hi All, >> >> In AArch64 back-end, BASE_REG_CLASS is defined to be POINTER_REGS. >> Shouldn’t this be GENERAL_REGS? > > Hi Kugan, > > Are you aware of any problem caused by BASE_REG_CLASS being POINTER_REGS? > > GENERAL_REGS and POINTER_REGS differ only in that the latter includes > SP, the former does not. It seems reasonable to me that > BASE_REG_CLASS should be based on the set that includes SP...... > > Cheers > /Marcus >
Indeed. If you put SP into general regs then you'd need to use a reg-class constraint other than "r" for most instructions (which would break existing inline assembly). If you make BASE_REG_CLASS == GENERAL_REGS you'll probably end up with accesses the stack becoming very inefficient. R.