[gcc r14-7094] i386: [APX] Document inline asm behavior and new switch for APX

Hongyu Wang hongyuw@gcc.gnu.org
Wed Jan 10 08:09:33 GMT 2024


https://gcc.gnu.org/g:7de5bb642c1265ff57a009dd889ab435b098bfca

commit r14-7094-g7de5bb642c1265ff57a009dd889ab435b098bfca
Author: Hongyu Wang <hongyu.wang@intel.com>
Date:   Tue Jan 9 15:00:21 2024 +0800

    i386: [APX] Document inline asm behavior and new switch for APX
    
    For APX, the inline asm behavior was not mentioned in any document
    before. Add description for it.
    
    gcc/ChangeLog:
    
            * config/i386/i386.opt: Adjust document.
            * doc/invoke.texi: Add description for
            -mapx-inline-asm-use-gpr32.

Diff:
---
 gcc/config/i386/i386.opt | 3 +--
 gcc/doc/invoke.texi      | 8 ++++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index a38e92baf92..5b4f1bff25f 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -1357,8 +1357,7 @@ Enum(apx_features) String(all) Value(apx_all) Set(1)
 
 mapx-inline-asm-use-gpr32
 Target Var(ix86_apx_inline_asm_use_gpr32) Init(0)
-Enable GPR32 in inline asm when APX_EGPR enabled, do not
-hook reg or mem constraint in inline asm to GPR16.
+Enable GPR32 in inline asm when APX_F enabled.
 
 mevex512
 Target Mask(ISA2_EVEX512) Var(ix86_isa_flags2) Save
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a494420e24e..216e2f594d1 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -35272,6 +35272,14 @@ r8-r15 registers so that the call and jmp instruction length is 6 bytes
 to allow them to be replaced with @samp{lfence; call *%r8-r15} or
 @samp{lfence; jmp *%r8-r15} at run-time.
 
+@opindex mapx-inline-asm-use-gpr32
+@item -mapx-inline-asm-use-gpr32
+For inline asm support with APX, by default the EGPR feature was
+disabled to prevent potential illegal instruction with EGPR occurs.
+To invoke egpr usage in inline asm, use new compiler option
+-mapx-inline-asm-use-gpr32 and user should ensure the instruction
+supports EGPR.
+
 @end table
 
 These @samp{-m} switches are supported in addition to the above


More information about the Gcc-cvs mailing list