Victor Do Nascimento <victor.donascime...@arm.com> writes: > Motivated by the need to print system register names in output > assembly, this patch adds the required logic to > `aarch64_print_operand' to accept rtxs of type CONST_STRING and > process these accordingly. > > Consequently, an rtx such as: > > (set (reg/i:DI 0 x0) > (unspec:DI [(const_string ("s3_3_c13_c2_2"))]) > > can now be output correctly using the following output pattern when > composing `define_insn's: > > "mrs\t%x0, %1" > > gcc/ChangeLog > > * gcc/config/aarch64/aarch64.cc (aarch64_print_operand): Add > support for CONST_STRING. > --- > gcc/config/aarch64/aarch64.cc | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc > index 816c4b69fc8..d187e171beb 100644 > --- a/gcc/config/aarch64/aarch64.cc > +++ b/gcc/config/aarch64/aarch64.cc > @@ -12430,6 +12430,12 @@ aarch64_print_operand (FILE *f, rtx x, int code) > > switch (GET_CODE (x)) > { > + case CONST_STRING: > + { > + const char *output_op = XSTR (x, 0); > + asm_fprintf (f, "%s", output_op); > + break; > + }
LGTM, but it seems slightly neater to avoid the temporary: case CONST_STRING: asm_fprintf (f, "%s", XSTR (x, 0)); break; (Sorry for the micro-comment.) Thanks, Richard > case REG: > if (aarch64_sve_data_mode_p (GET_MODE (x))) > {