¿Cuándo usar la restricción earlyclobber en el ensamblado en línea de GCC extendido?

Entiendo cuándo usar una lista de Cobbler (por ejemplo, enumerar un registro que se modifica en el ensamblaje para que no se elija para usarlo como registro de entrada, etc.), pero no puedo ajustar la cabeza alrededor de la restricción de Earlyblobber&. Si enumera sus salidas, ¿no significaría eso ya que las entradas no pueden usar el registro seleccionado (aparte de las restricciones de dígitos coincidentes)?

Por ejemplo:

asm(
    "movl $1, %0;"
    "addl $3, %0;"
    "addl $4, %1;"
    "addl %1, %0;"
    : "=g"(num_out)
    : "g"(num_in)
    :
);

haría& ¿Incluso será necesario para las variables de salida? El compilador debe conocer el registro que se seleccionó para la salida y, por lo tanto, no debe usarlo para la entrada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta