It jumps forward 6 bytes in the program code on a 18F ( 6 instruction words on a 16F) and eats up 2 cycles on the 16F or 18F. On a 16F PIC it would skip 6 instructions which include the goto itself. On an 18F PIC it would skip the goto instruction (4 bytes) plus one regular instruction (2 bytes). Another reason to abhor the goto $ + x mnemonic. Now, if you used a label, the code would compile properly on both the 16F and 18F series. The timing would be wrong, but program flow would be maintained