public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers [not found] <bug-37621-4@http.gcc.gnu.org/bugzilla/> @ 2014-06-18 19:44 ` gerald at pfeifer dot com 0 siblings, 0 replies; 4+ messages in thread From: gerald at pfeifer dot com @ 2014-06-18 19:44 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37621 Gerald Pfeifer <gerald at pfeifer dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |gerald at pfeifer dot com Resolution|--- |FIXED --- Comment #4 from Gerald Pfeifer <gerald at pfeifer dot com> --- I checked, and https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#i386Operandmodifiers now covers this as part of the general documentation so I am closing this report as fixed. Please advise if I missed anything. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug inline-asm/37621] New: Missing documentation for x86 inline assembler modifiers @ 2008-09-23 12:14 n dot pipenbrinck at cubic dot org 2008-09-24 0:36 ` [Bug inline-asm/37621] " pinskia at gcc dot gnu dot org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: n dot pipenbrinck at cubic dot org @ 2008-09-23 12:14 UTC (permalink / raw) To: gcc-bugs I came across the following modifiers for inline assembler: asm ("rorw $8, %w0" : "=q" (y) : "0" (x)); asm ("xchg %b0, %h0" : "=q" (y) : "0" (x)); They work very well. No bug in the compiler itself, but I haven't found anything about them in the online documentation. Note: The %w0, %b0 and %h0 modifiers allows us to access thesub-registers of a 32 bit register. E.g. if %0 is EAX, %w0 becomes AX, %b0 becomes AL and %h0 becomes AH. -- Summary: Missing documentation for x86 inline assembler modifiers Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: n dot pipenbrinck at cubic dot org GCC host triplet: x86 GCC target triplet: x86 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37621 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers 2008-09-23 12:14 [Bug inline-asm/37621] New: " n dot pipenbrinck at cubic dot org @ 2008-09-24 0:36 ` pinskia at gcc dot gnu dot org 2008-09-24 17:44 ` dlenski at gmail dot com 2008-09-24 22:43 ` n dot pipenbrinck at cubic dot org 2 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu dot org @ 2008-09-24 0:36 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from pinskia at gcc dot gnu dot org 2008-09-24 00:35 ------- IIRC these are not documented because they can and will change at any time and don't always produce correct code. Also you can use most of the builtin functions to get the same as the inline-asm ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37621 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers 2008-09-23 12:14 [Bug inline-asm/37621] New: " n dot pipenbrinck at cubic dot org 2008-09-24 0:36 ` [Bug inline-asm/37621] " pinskia at gcc dot gnu dot org @ 2008-09-24 17:44 ` dlenski at gmail dot com 2008-09-24 22:43 ` n dot pipenbrinck at cubic dot org 2 siblings, 0 replies; 4+ messages in thread From: dlenski at gmail dot com @ 2008-09-24 17:44 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from dlenski at gmail dot com 2008-09-24 17:43 ------- Hi Andrew, It seems to me that these modifiers are quite necessary for flexible x86 assembly. What is the point of the "q" and "Q" constraints if there's no way to specifically refer to the 16-bit or 8-bit components of the selected register? And are you sure there built-in functions to invoke the rol/ror/xhcg instructions? I don't see any in the 4.3 docs. Dan -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37621 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers 2008-09-23 12:14 [Bug inline-asm/37621] New: " n dot pipenbrinck at cubic dot org 2008-09-24 0:36 ` [Bug inline-asm/37621] " pinskia at gcc dot gnu dot org 2008-09-24 17:44 ` dlenski at gmail dot com @ 2008-09-24 22:43 ` n dot pipenbrinck at cubic dot org 2 siblings, 0 replies; 4+ messages in thread From: n dot pipenbrinck at cubic dot org @ 2008-09-24 22:43 UTC (permalink / raw) To: gcc-bugs ------- Comment #3 from n dot pipenbrinck at cubic dot org 2008-09-24 22:41 ------- ROL/ROR on the native integer size is not supported via intrinsics, but the compiler will fold two shifts into a rotate. If I want to manipulate only the lower 16 bit of an 32 bit integer (e.g. issue a rolw) assembly is the only way it's currently possible. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37621 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-18 19:44 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <bug-37621-4@http.gcc.gnu.org/bugzilla/> 2014-06-18 19:44 ` [Bug inline-asm/37621] Missing documentation for x86 inline assembler modifiers gerald at pfeifer dot com 2008-09-23 12:14 [Bug inline-asm/37621] New: " n dot pipenbrinck at cubic dot org 2008-09-24 0:36 ` [Bug inline-asm/37621] " pinskia at gcc dot gnu dot org 2008-09-24 17:44 ` dlenski at gmail dot com 2008-09-24 22:43 ` n dot pipenbrinck at cubic dot 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).