Вы можете использовать препроцессор C для включения «нового» синтаксиса макроса следующим образом:
#include "macros.h"
.macro M_DEMO M3ARGS
#define ref MARG0
#define src MARG1
#define dst MARG2
vext.8 dst, ref, src, #1
#undef ref
#undef src
#undef dst
.endm
, где заголовочный файл macros.h
содержит:
#ifndef __MACROS_H__
#define __MACROS_H__
#ifdef __MACH__
/*
* iOS macro support
*/
// Number of arguments in macro definition
#define M0ARGS
#define M1ARGS
#define M2ARGS
#define M3ARGS
#define M4ARGS
#define M5ARGS
#define M6ARGS
#define M7ARGS
#define M8ARGS
#define M9ARGS
#define M10ARGS
// Macro arguments
#define MARG0 $0
#define MARG1 $1
#define MARG2 $2
#define MARG3 $3
#define MARG4 $4
#define MARG5 $5
#define MARG6 $6
#define MARG7 $7
#define MARG8 $8
#define MARG9 $9
#else
/*
* Android macro support
*/
// Number of arguments in macro definition
#define M0ARGS
#define M1ARGS $0
#define M2ARGS $0, $1
#define M3ARGS $0, $1, $2
#define M4ARGS $0, $1, $2, $3
#define M5ARGS $0, $1, $2, $3, $4
#define M6ARGS $0, $1, $2, $3, $4, $5
#define M7ARGS $0, $1, $2, $3, $4, $5, $6
#define M8ARGS $0, $1, $2, $3, $4, $5, $6, $7
#define M9ARGS $0, $1, $2, $3, $4, $5, $6, $7, $8
#define M10ARGS $0, $1, $2, $3, $4, $5, $6, $7, $8, $9
// Macro arguments
#define MARG0 \$0
#define MARG1 \$1
#define MARG2 \$2
#define MARG3 \$3
#define MARG4 \$4
#define MARG5 \$5
#define MARG6 \$6
#define MARG7 \$7
#define MARG8 \$8
#define MARG9 \$9
#endif
#endif // __MACROS_H__