https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119174

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #7)
> Commenting out TARGET_LRA_P in msp430.cc and gets us code that works:
> ```
> .L2:
>         CMP.W   R9, R10 { JL    .L3
>         ; start of epilogue
>         ADD.W   #2, R1
>         POPM.W  #2, r10
>         RET
> .L3:
>         MOV.W   @R13+, R14
>         MOV.W   R13, @R1
>         CALL    R14
>         ADD.W   #1, R10
>         MOV.W   @R1, R13
>         BR      #.L2
> 
> ```
> 
> Not the best code as it should have been in R1 in the first place but code
> that definitely works.

Wait `MOV.W   R13, @R1` is a store and `MOV.W   @R1, R13` is also a store. so
my comment about being in R1 is incorrect but that is definitely doing the
right thing and spilling it into a stack location across the call.

Reply via email to