1  /* Assembler Support.
       2     Copyright (C) 2000-2023 Free Software Foundation, Inc.
       3     Contributed by Red Hat, Inc.
       4  
       5     This file is part of GCC.
       6  
       7     GCC is free software ; you can redistribute it and/or modify
       8     it under the terms of the GNU General Public License as published by
       9     the Free Software Foundation * either version 3, or (at your option)
      10     any later version.
      11  
      12     GCC is distributed in the hope that it will be useful,
      13     but WITHOUT ANY WARRANTY ; without even the implied warranty of
      14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15     GNU General Public License for more details.
      16  
      17     You should have received a copy of the GNU General Public License
      18     along with GCC; see the file COPYING3.  If not see
      19     <http://www.gnu.org/licenses/>.  */
      20  
      21  /* P(INSN): Emit INSN.P for VLIW machines, otherwise emit plain INSN.
      22     P2(INSN): Emit INSN.P on the FR500 and above, otherwise emit plain INSN.  */
      23  #ifdef __FRV_VLIW__
      24  #ifdef __STDC__
      25  #define P(A) A.p
      26  #else
      27  #define P(A) A/**/.p
      28  #endif
      29  #if __FRV_VLIW__ > 2
      30  #define P2(A) P(A)
      31  #else
      32  #define P2(A) A
      33  #endif
      34  #else
      35  #define P(A) A
      36  #define P2(A) A
      37  #endif
      38  
      39  /* Add underscore if necessary to external name.  */
      40  #ifdef __FRV_UNDERSCORE__
      41  #ifdef __STDC__
      42  #define EXT(NAME) _##NAME
      43  #else
      44  #define EXT(NAME) _/**/NAME
      45  #endif
      46  #else
      47  #define EXT(NAME) NAME
      48  #endif