Dimitar Dimitrov <dimi...@dinux.eu> writes: > On Wed, 11 Sep 2019, 22:02:26 EEST Richard Sandiford wrote: >> The reason for the PRU differences is that the port defines >> targetm.hard_regno_call_part_clobbered, but uses it to test whether >> a multi-register value contains a mixture of fully-clobbered and >> fully-preserved registers. AFAICT the port doesn't actually have >> individual registers that are partly clobbered, so it doesn't need >> to define the hook. (I can see how the documentation gave a misleading >> impression though. I've tried to improve it in one of the patches.) >> The series moves away from testing hard_regno_call_part_clobbered >> directly to testing cached information instead, and the way that the >> cached information is calculated means that defining the hook the way >> the PRU port does has no effect. In other words, after the series we >> treat it (rightly IMO) as having a "normal" ABI whereas before we didn't. > You are correct. Port does not have partially clobbered HW registers. And > indeed I was worried about multi-register values. > > PRU testsuite showed no regression from trunk with your patch set. > > With your patch set, I tried to compare PRU assembly with and without > defining > the targetm.hard_regno_call_part_clobbered hook. There was much noise in > compare-all-tests due to lto compiler ID strings, but after some filtering I > think the output assembly was the same.
OK, great! Thanks for the testing. Richard