]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
amdgcn: Fix bug in gfx1030 support patch
authorAndrew Stubbs <ams@codesourcery.com>
Fri, 27 Oct 2023 16:53:10 +0000 (17:53 +0100)
committerAndrew Stubbs <ams@codesourcery.com>
Fri, 27 Oct 2023 17:00:55 +0000 (18:00 +0100)
The previous patch to add gfx1030 support introduced an issue with passing
exit codes from kernels run under gcn-run (offload kernels were unaffected).

gcc/ChangeLog:

PR target/112088
* config/gcn/gcn.cc (gcn_expand_epilogue): Fix kernel epilogue register
conflict.

gcc/config/gcn/gcn.cc

index 6f85f55803c811621f216b3fc127c4c8d74af852..6a2aaefceca46e2da9f40e57ac6c3c814d68fbd5 100644 (file)
@@ -3615,13 +3615,11 @@ gcn_expand_epilogue (void)
       set_mem_addr_space (retptr_mem, ADDR_SPACE_SCALAR_FLAT);
       emit_move_insn (kernarg_reg, retptr_mem);
 
-      rtx retval_addr = gen_rtx_REG (DImode, FIRST_VPARM_REG);
+      rtx retval_addr = gen_rtx_REG (DImode, FIRST_VPARM_REG + 2);
       emit_move_insn (retval_addr, kernarg_reg);
       rtx retval_mem = gen_rtx_MEM (SImode, retval_addr);
-      rtx scalar_retval = gen_rtx_REG (SImode, FIRST_VPARM_REG + 2);
       set_mem_addr_space (retval_mem, ADDR_SPACE_FLAT);
-      emit_move_insn (scalar_retval, gen_rtx_REG (SImode, RETURN_VALUE_REG));
-      emit_move_insn (retval_mem, scalar_retval);
+      emit_move_insn (retval_mem, gen_rtx_REG (SImode, RETURN_VALUE_REG));
     }
 
   emit_jump_insn (gen_gcn_return ());