public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/113312] New: Update __attribute__((interrupt)) for Intel FRED
@ 2024-01-10 16:28 hjl.tools at gmail dot com
  2024-01-11  1:39 ` [Bug target/113312] " hpa at zytor dot com
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: hjl.tools at gmail dot com @ 2024-01-10 16:28 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 113312
           Summary: Update __attribute__((interrupt)) for Intel FRED
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: crazylht at gmail dot com, hpa at zytor dot com
  Target Milestone: ---
            Target: x86-64

__attribute__((interrupt)) should be updated for Intel Flexible Return and
Event
Delivery (FRED):

1. FRED was never intended to be used without an assembly stub, as the
distinction
between ERETU and ERETS comes from the entry point chosen, and the FRED entry
points
are designed to be large enough to have an initial assembly stub to save and
restore
whatever registers the user wishes.
2. Event info layout on incoming stack is the same for all events.  Event type
is
encoded in the event info.

The FRED attribute:

1. Don't preserve ANY registers. Assembly stubs are responsible to save and
restore any registers if needed.
2. Use the normal RET to go to the assembly stub which will restore registers
and return with ERETU or ERETS as appropriate.
3. Assuming the assembly stubs save registers on incoming stack, the assembly
stub must set up RDI pointing to the event info on incoming stack.

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2024-01-27 12:19 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-10 16:28 [Bug target/113312] New: Update __attribute__((interrupt)) for Intel FRED hjl.tools at gmail dot com
2024-01-11  1:39 ` [Bug target/113312] " hpa at zytor dot com
2024-01-11  1:48 ` hjl.tools at gmail dot com
2024-01-11  2:10 ` hpa at zytor dot com
2024-01-11  2:10 ` hpa at zytor dot com
2024-01-11  2:19 ` hjl.tools at gmail dot com
2024-01-11  2:35 ` hpa at zytor dot com
2024-01-11  4:09 ` hjl.tools at gmail dot com
2024-01-11  4:10 ` hjl.tools at gmail dot com
2024-01-11  4:11 ` hjl.tools at gmail dot com
2024-01-11  5:29 ` hpa at zytor dot com
2024-01-11  5:38 ` liuhongt at gcc dot gnu.org
2024-01-11 15:47 ` fw at gcc dot gnu.org
2024-01-11 15:55 ` hpa at zytor dot com
2024-01-12  1:00 ` hjl.tools at gmail dot com
2024-01-12  1:25 ` hpa at zytor dot com
2024-01-12  4:31 ` hjl.tools at gmail dot com
2024-01-13  5:03 ` hjl.tools at gmail dot com
2024-01-13 18:25 ` hjl.tools at gmail dot com
2024-01-13 20:02 ` hpa at zytor dot com
2024-01-13 20:22 ` hjl.tools at gmail dot com
2024-01-13 20:51 ` hpa at zytor dot com
2024-01-18  6:42 ` [Bug target/113312] Add __attribute__((no_callee_saved_registers)) " xin at zytor dot com
2024-01-18 13:01 ` hjl.tools at gmail dot com
2024-01-19  6:23 ` xin at zytor dot com
2024-01-19  6:25 ` xin at zytor dot com
2024-01-19 13:40 ` hjl.tools at gmail dot com
2024-01-27 12:19 ` cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).