Evitar que un codigo se repita en el void loop y optimizarlo

Cual de estas dos formas es mas rápida en cuanto a ciclos , a ver alguien q controle bastante de programación.

void step(boolean dir,int steps){
digitalWrite(dirPin,dir);
ó
if (dir==1){
PORTB |= _BV(PORTB5);
}else{
PORTB &= ~(_BV(PORTB5));
}
}

un saludo