Hi Oliver, +#define FIXED_R18 0
{ \ 0, 0, 0, 0, 0, 0, 0, 0, /* R0 - R7 */ \ 0, 0, 0, 0, 0, 0, 0, 0, /* R8 - R15 */ \ - 0, 0, 0, 0, 0, 0, 0, 0, /* R16 - R23 */ \ + 0, 0, FIXED_R18, 0, 0, 0, 0, 0, /* R16 - R23 */ \ This is equivalent to having a zero in the table given the #define is unconditional. It's best to use the existing mechanisms to change registers, this should be done in aarch64_conditional_register_usage given very similar changes for floating point and SVE are already there. Cheers, Wilco