I am using the same 1.8.13 Arduino IDE. I have now removed from the sketch pretty much everything else except the following function. Still getting the same error:
inline bool add256bAsm2(uint8_t * a, uint8_t * b) {
uint8_t result;
asm volatile
(
" ld r0, %a[src] \n"
" ld %[result], %a[dst] \n"
" add %[result], r0 \n" // a[0] += b[0]
" st %a[dst], %[result] \n"
" ldd r0, %a[src]+1 \n"
" ldd %[result], %a[dst]+1 \n"
" adc %[result], r0 \n" // a[1] += b[1]
" std %a[dst]+1, %[result] \n"
" ldd r0, %a[src]+2 \n"
" ldd %[result], %a[dst]+2 \n"
" adc %[result], r0 \n" // a[2] += b[2]
" std %a[dst]+2, %[result] \n"
" ldd r0, %a[src]+3 \n"
" ldd %[result], %a[dst]+3 \n"
" adc %[result], r0 \n" // a[3] += b[3]
" std %a[dst]+3, %[result] \n"
" ldd r0, %a[src]+4 \n"
" ldd %[result], %a[dst]+4 \n"
" adc %[result], r0 \n" // a[4] += b[4]
" std %a[dst]+4, %[result] \n"
" ldd r0, %a[src]+5 \n"
" ldd %[result], %a[dst]+5 \n"
" adc %[result], r0 \n" // a[5] += b[5]
" std %a[dst]+5, %[result] \n"
" ldd r0, %a[src]+6 \n"
" ldd %[result], %a[dst]+6 \n"
" adc %[result], r0 \n" // a[6] += b[6]
" std %a[dst]+6, %[result] \n"
" ldd r0, %a[src]+7 \n"
" ldd %[result], %a[dst]+7 \n"
" adc %[result], r0 \n" // a[7] += b[7]
" std %a[dst]+7, %[result] \n"
" ldd r0, %a[src]+8 \n"
" ldd %[result], %a[dst]+8 \n"
" adc %[result], r0 \n" // a[8] += b[8]
" std %a[dst]+8, %[result] \n"
" ldd r0, %a[src]+9 \n"
" ldd %[result], %a[dst]+9 \n"
" adc %[result], r0 \n" // a[9] += b[9]
" std %a[dst]+9, %[result] \n"
" ldd r0, %a[src]+10 \n"
" ldd %[result], %a[dst]+10 \n"
" adc %[result], r0 \n" // a[10] += b[10]
" std %a[dst]+10, %[result] \n"
" ldd r0, %a[src]+11 \n"
" ldd %[result], %a[dst]+11 \n"
" adc %[result], r0 \n" // a[11] += b[11]
" std %a[dst]+11, %[result] \n"
" ldd r0, %a[src]+12 \n"
" ldd %[result], %a[dst]+12 \n"
" adc %[result], r0 \n" // a[12] += b[12]
" std %a[dst]+12, %[result] \n"
" ldd r0, %a[src]+13 \n"
" ldd %[result], %a[dst]+13 \n"
" adc %[result], r0 \n" // a[13] += b[13]
" std %a[dst]+13, %[result] \n"
" ldd r0, %a[src]+14 \n"
" ldd %[result], %a[dst]+14 \n"
" adc %[result], r0 \n" // a[14] += b[14]
" std %a[dst]+14, %[result] \n"
" ldd r0, %a[src]+15 \n"
" ldd %[result], %a[dst]+15 \n"
" adc %[result], r0 \n" // a[15] += b[15]
" std %a[dst]+15, %[result] \n"
" ldd r0, %a[src]+16 \n"
" ldd %[result], %a[dst]+16 \n"
" adc %[result], r0 \n" // a[16] += b[16]
" std %a[dst]+16, %[result] \n"
" ldd r0, %a[src]+17 \n"
" ldd %[result], %a[dst]+17 \n"
" adc %[result], r0 \n" // a[17] += b[17]
" std %a[dst]+17, %[result] \n"
" ldd r0, %a[src]+18 \n"
" ldd %[result], %a[dst]+18 \n"
" adc %[result], r0 \n" // a[18] += b[18]
" std %a[dst]+18, %[result] \n"
" ldd r0, %a[src]+19 \n"
" ldd %[result], %a[dst]+19 \n"
" adc %[result], r0 \n" // a[19] += b[19]
" std %a[dst]+19, %[result] \n"
" ldd r0, %a[src]+20 \n"
" ldd %[result], %a[dst]+20 \n"
" adc %[result], r0 \n" // a[20] += b[20]
" std %a[dst]+20, %[result] \n"
" ldd r0, %a[src]+21 \n"
" ldd %[result], %a[dst]+21 \n"
" adc %[result], r0 \n" // a[21] += b[21]
" std %a[dst]+21, %[result] \n"
" ldd r0, %a[src]+22 \n"
" ldd %[result], %a[dst]+22 \n"
" adc %[result], r0 \n" // a[22] += b[22]
" std %a[dst]+22, %[result] \n"
" ldd r0, %a[src]+23 \n"
" ldd %[result], %a[dst]+23 \n"
" adc %[result], r0 \n" // a[23] += b[23]
" std %a[dst]+23, %[result] \n"
" ldd r0, %a[src]+24 \n"
" ldd %[result], %a[dst]+24 \n"
" adc %[result], r0 \n" // a[24] += b[24]
" std %a[dst]+24, %[result] \n"
" ldd r0, %a[src]+25 \n"
" ldd %[result], %a[dst]+25 \n"
" adc %[result], r0 \n" // a[25] += b[25]
" std %a[dst]+25, %[result] \n"
" ldd r0, %a[src]+26 \n"
" ldd %[result], %a[dst]+26 \n"
" adc %[result], r0 \n" // a[26] += b[26]
" std %a[dst]+26, %[result] \n"
" ldd r0, %a[src]+27 \n"
" ldd %[result], %a[dst]+27 \n"
" adc %[result], r0 \n" // a[27] += b[27]
" std %a[dst]+27, %[result] \n"
" ldd r0, %a[src]+28 \n"
" ldd %[result], %a[dst]+28 \n"
" adc %[result], r0 \n" // a[28] += b[28]
" std %a[dst]+28, %[result] \n"
" ldd r0, %a[src]+29 \n"
" ldd %[result], %a[dst]+29 \n"
" adc %[result], r0 \n" // a[29] += b[29]
" std %a[dst]+29, %[result] \n"
" ldd r0, %a[src]+30 \n"
" ldd %[result], %a[dst]+30 \n"
" adc %[result], r0 \n" // a[30] += b[30]
" std %a[dst]+30, %[result] \n"
" ldd r0, %a[src]+31 \n"
" ldd %[result], %a[dst]+31 \n"
" adc %[result], r0 \n" // a[31] += b[31]
" std %a[dst]+31, %[result] \n"
" sbc %[result], %[result]\n" // 0 if final carry is clear, 255 if final carry is set
: [result] "=r" (result)
: [src] "b" (b),
[dst] "b" (a)
);
return result;
}