##adc_execute bits(datasize) result; bits(datasize) operand1 = X[n]; bits(datasize) operand2 = X[m]; bits(4) nzcv; if sub_op then operand2 = NOT(operand2); end (result, nzcv) = AddWithCarry(operand1, operand2, PSTATE.C); if setflags then PSTATE. = nzcv; end X[d] = result; @@