In the risc-v specification, it says that j is pseudocode for jal. I'm confused about how this works since the range of immediate values is different for j (25-bit immediate) and jal (20-bit immediate) - and also jalr with a 12-bit immediate.
Any clarification on how this translation is handled would be greatly appreciated!