On 9/12/23 03:18, Feng Wang wrote:
New patch add some comments and update docs for this new usage.
---
Accoring to Kito's advice, using "MASK(name) Var(other_flag_name)"
to generate MASK and TARGET MACRO automatically.
This patch improve the MACRO generation of MASK_* and TARGET_*.
Due to the more and more riscv extensions are added, the default target_flag
is full.
Before this patch,if you want to add new MACRO,you should define the
MACRO in the riscv-opts.h manually.
After this patch, you just need two steps:
1.Define the new TargetVariable.
2.Define "MASK(name) Var(new_target_flag).

gcc/ChangeLog:

         * config/riscv/riscv-opts.h (MASK_ZICSR):
         (MASK_ZIFENCEI):     Delete;
         (MASK_ZIHINTNTL):    Ditto;
         (MASK_ZIHINTPAUSE):  Ditto;
         (TARGET_ZICSR):      Ditto;
         (TARGET_ZIFENCEI):   Ditto;
         (TARGET_ZIHINTNTL):  Ditto;
         (TARGET_ZIHINTPAUSE):Ditto;
         (MASK_ZAWRS):        Ditto;
         (TARGET_ZAWRS):      Ditto;
         (MASK_ZBA):          Ditto;
         (MASK_ZBB):          Ditto;
         (MASK_ZBC):          Ditto;
         (MASK_ZBS):          Ditto;
         (TARGET_ZBA):        Ditto;
         (TARGET_ZBB):        Ditto;
         (TARGET_ZBC):        Ditto;
         (TARGET_ZBS):        Ditto;
         (MASK_ZFINX):        Ditto;
         (MASK_ZDINX):        Ditto;
         (MASK_ZHINX):        Ditto;
         (MASK_ZHINXMIN):     Ditto;
         (TARGET_ZFINX):      Ditto;
         (TARGET_ZDINX):      Ditto;
         (TARGET_ZHINX):      Ditto;
         (TARGET_ZHINXMIN):   Ditto;
         (MASK_ZBKB):         Ditto;
         (MASK_ZBKC):         Ditto;
         (MASK_ZBKX):         Ditto;
         (MASK_ZKNE):         Ditto;
         (MASK_ZKND):         Ditto;
         (MASK_ZKNH):         Ditto;
         (MASK_ZKR):          Ditto;
         (MASK_ZKSED):        Ditto;
         (MASK_ZKSH):         Ditto;
         (MASK_ZKT):          Ditto;
         (TARGET_ZBKB):       Ditto;
         (TARGET_ZBKC):       Ditto;
         (TARGET_ZBKX):       Ditto;
         (TARGET_ZKNE):       Ditto;
         (TARGET_ZKND):       Ditto;
         (TARGET_ZKNH):       Ditto;
         (TARGET_ZKR):        Ditto;
         (TARGET_ZKSED):      Ditto;
         (TARGET_ZKSH):       Ditto;
         (TARGET_ZKT):        Ditto;
         (MASK_ZTSO):         Ditto;
         (TARGET_ZTSO):       Ditto;
         (MASK_VECTOR_ELEN_32):   Ditto;
         (MASK_VECTOR_ELEN_64):   Ditto;
         (MASK_VECTOR_ELEN_FP_32):Ditto;
         (MASK_VECTOR_ELEN_FP_64):Ditto;
         (MASK_VECTOR_ELEN_FP_16):Ditto;
         (TARGET_VECTOR_ELEN_32): Ditto;
         (TARGET_VECTOR_ELEN_64): Ditto;
         (TARGET_VECTOR_ELEN_FP_32):Ditto;
         (TARGET_VECTOR_ELEN_FP_64):Ditto;
         (TARGET_VECTOR_ELEN_FP_16):Ditto;
          (MASK_ZVBB):           Ditto;
         (MASK_ZVBC):           Ditto;
         (TARGET_ZVBB):         Ditto;
         (TARGET_ZVBC):         Ditto;
         (MASK_ZVKG):           Ditto;
         (MASK_ZVKNED):         Ditto;
         (MASK_ZVKNHA):         Ditto;
         (MASK_ZVKNHB):         Ditto;
         (MASK_ZVKSED):         Ditto;
         (MASK_ZVKSH):          Ditto;
         (MASK_ZVKN):           Ditto;
         (MASK_ZVKNC):          Ditto;
         (MASK_ZVKNG):          Ditto;
         (MASK_ZVKS):           Ditto;
         (MASK_ZVKSC):          Ditto;
         (MASK_ZVKSG):          Ditto;
         (MASK_ZVKT):           Ditto;
         (TARGET_ZVKG):         Ditto;
         (TARGET_ZVKNED):       Ditto;
         (TARGET_ZVKNHA):       Ditto;
         (TARGET_ZVKNHB):       Ditto;
         (TARGET_ZVKSED):       Ditto;
         (TARGET_ZVKSH):        Ditto;
         (TARGET_ZVKN):         Ditto;
         (TARGET_ZVKNC):        Ditto;
         (TARGET_ZVKNG):        Ditto;
         (TARGET_ZVKS):         Ditto;
         (TARGET_ZVKSC):        Ditto;
         (TARGET_ZVKSG):        Ditto;
         (TARGET_ZVKT):         Ditto;
         (MASK_ZVL32B):         Ditto;
         (MASK_ZVL64B):         Ditto;
         (MASK_ZVL128B):        Ditto;
         (MASK_ZVL256B):        Ditto;
         (MASK_ZVL512B):        Ditto;
         (MASK_ZVL1024B):       Ditto;
         (MASK_ZVL2048B):       Ditto;
         (MASK_ZVL4096B):       Ditto;
         (MASK_ZVL8192B):       Ditto;
         (MASK_ZVL16384B):      Ditto;
         (MASK_ZVL32768B):      Ditto;
         (MASK_ZVL65536B):      Ditto;
         (TARGET_ZVL32B):       Ditto;
         (TARGET_ZVL64B):       Ditto;
         (TARGET_ZVL128B):      Ditto;
         (TARGET_ZVL256B):      Ditto;
         (TARGET_ZVL512B):      Ditto;
         (TARGET_ZVL1024B):     Ditto;
         (TARGET_ZVL2048B):     Ditto;
         (TARGET_ZVL4096B):     Ditto;
         (TARGET_ZVL8192B):     Ditto;
         (TARGET_ZVL16384B):    Ditto;
         (TARGET_ZVL32768B):    Ditto;
         (TARGET_ZVL65536B):    Ditto;
         (MASK_ZICBOZ):         Ditto;
         (MASK_ZICBOM):         Ditto;
         (MASK_ZICBOP):         Ditto;
         (TARGET_ZICBOZ):       Ditto;
         (TARGET_ZICBOM):       Ditto;
         (TARGET_ZICBOP):       Ditto;
         (MASK_ZICOND):         Ditto;
         (TARGET_ZICOND):       Ditto;
         (MASK_ZFA):            Ditto;
         (TARGET_ZFA):          Ditto;
         (MASK_ZFHMIN):         Ditto;
         (MASK_ZFH):            Ditto;
         (MASK_ZVFHMIN):        Ditto;
         (MASK_ZVFH):           Ditto;
         (TARGET_ZFHMIN):       Ditto;
         (TARGET_ZFH):          Ditto;
         (TARGET_ZVFHMIN):      Ditto;
         (TARGET_ZVFH):         Ditto;
         (MASK_ZMMUL):          Ditto;
         (TARGET_ZMMUL):        Ditto;
         (MASK_ZCA):            Ditto;
         (MASK_ZCB):            Ditto;
         (MASK_ZCE):            Ditto;
         (MASK_ZCF):            Ditto;
         (MASK_ZCD):            Ditto;
         (MASK_ZCMP):           Ditto;
         (MASK_ZCMT):           Ditto;
         (TARGET_ZCA):          Ditto;
         (TARGET_ZCB):          Ditto;
         (TARGET_ZCE):          Ditto;
         (TARGET_ZCF):          Ditto;
         (TARGET_ZCD):          Ditto;
         (TARGET_ZCMP):         Ditto;
         (TARGET_ZCMT):         Ditto;
         (MASK_SVINVAL):        Ditto;
         (MASK_SVNAPOT):        Ditto;
         (TARGET_SVINVAL):      Ditto;
         (TARGET_SVNAPOT):      Ditto;
         (MASK_XTHEADBA):       Ditto;
         (MASK_XTHEADBB):       Ditto;
         (MASK_XTHEADBS):       Ditto;
         (MASK_XTHEADCMO):      Ditto;
         (MASK_XTHEADCONDMOV):  Ditto;
         (MASK_XTHEADFMEMIDX):  Ditto;
         (MASK_XTHEADFMV):      Ditto;
         (MASK_XTHEADINT):      Ditto;
         (MASK_XTHEADMAC):      Ditto;
         (MASK_XTHEADMEMIDX):   Ditto;
         (MASK_XTHEADMEMPAIR):  Ditto;
         (MASK_XTHEADSYNC):     Ditto;
         (TARGET_XTHEADBA):     Ditto;
         (TARGET_XTHEADBB):     Ditto;
         (TARGET_XTHEADBS):     Ditto;
         (TARGET_XTHEADCMO):    Ditto;
         (TARGET_XTHEADCONDMOV):Ditto;
         (TARGET_XTHEADFMEMIDX):Ditto;
         (TARGET_XTHEADFMV):    Ditto;
         (TARGET_XTHEADINT):    Ditto;
         (TARGET_XTHEADMAC):    Ditto;
         (TARGET_XTHEADMEMIDX): Ditto;
         (TARGET_XTHEADMEMPAIR):Ditto;
         (TARGET_XTHEADSYNC):   Ditto;
         (MASK_XVENTANACONDOPS):Ditto;
         (TARGET_XVENTANACONDOPS):Ditto;
         * config/riscv/riscv.opt: Add new Mask defination.
         * doc/options.texi:       Add explanation for this new usage.
         * opt-functions.awk:      Add new function to find the index
                                   of target variable from extra_target_vars.
         * opt-read.awk:           Add new function to store the Mask flags.
         * opth-gen.awk:           Add new function to output the defination of
                                   Mask Macro and Target Macro.
OK
jeff

Reply via email to