On 1/13/21 4:25 PM, Philippe Mathieu-Daudé wrote:
> On 1/11/21 4:01 PM, Philippe Mathieu-Daudé wrote:
>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
>> ---
>>  tcg/ppc/tcg-target.c.inc | 294 ++++++++++++++++++---------------------
>>  1 file changed, 138 insertions(+), 156 deletions(-)
> ...
> 
>> @@ -2818,10 +2805,9 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, 
>> const TCGArg *args,
>>      case INDEX_op_bswap32_i32:
>>      case INDEX_op_bswap32_i64:
>>          /* Stolen from gcc's builtin_bswap32 */
>> -        a1 = args[1];
>> -        a0 = args[0] == a1 ? TCG_REG_R0 : args[0];
>> +        a0 = a0 == a1 ? TCG_REG_R0 : a0;
> 
> Oops... Here is probably the regression reported by Miroslav,
> I shouldn't have changed this line, simply remove the a1

Oops^2, wrong hunk =) Following one...

> 
>>  
>> -        /* a1 = args[1] # abcd */
>> +        /* a1 = a1 # abcd */
>>          /* a0 = rotate_left (a1, 8) # bcda */
>>          tcg_out_rlw(s, RLWINM, a0, a1, 8, 0, 31);
>>          /* a0 = (a0 & ~0xff000000) | ((a1 r<< 24) & 0xff000000) # dcda */
@@ -2830,12 +2816,12 @@ static void tcg_out_op(TCGContext *s, TCGOpcode
opc, const TCGArg *args,
         tcg_out_rlw(s, RLWIMI, a0, a1, 24, 16, 23);

Here, is the line I shouldn't have changed:

         if (a0 == TCG_REG_R0) {
-            tcg_out_mov(s, TCG_TYPE_REG, args[0], a0);
+            tcg_out_mov(s, TCG_TYPE_REG, a0, a0);
         }
         break;

(multiple occurrences).

Reply via email to