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

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #61120|0                           |1
        is obsolete|                            |

--- Comment #12 from H.J. Lu <hjl.tools at gmail dot com> ---
Created attachment 61124
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61124&action=edit
An untested patch

I got

[hjl@gnu-tgl-3 no-callee]$ cat x.c
extern void boring(void);

extern void (continuation)(void *, void *, void *, void *)
  __attribute__((preserve_none));

__attribute__((preserve_none))
void entry(void *a, void *b, void *c, void *d)
{
  boring();
  continuation(a, b, c, d);
}
[hjl@gnu-tgl-3 no-callee]$ make x.s
/export/build/gnu/tools-build/gcc-gitlab-test-debug/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-build/gcc-gitlab-test-debug/build-x86_64-linux/gcc/
-O2 -mgeneral-regs-only -mtune-ctrl=prologue_using_move,epilogue_using_move -S
x.c
[hjl@gnu-tgl-3 no-callee]$ cat x.s
        .file   "x.c"
        .text
        .p2align 4
        .globl  entry
        .type   entry, @function
entry:
.LFB0:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        call    boring
        addq    $8, %rsp
        .cfi_def_cfa_offset 8
        jmp     continuation
        .cfi_endproc
.LFE0:
        .size   entry, .-entry
        .ident  "GCC: (GNU) 15.0.1 20250415 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 no-callee]$

Reply via email to