Re: Hardwired drivers are going away?

Brian Gerst
2002-01-14T23:13:24Z

David Lang wrote:
>
> the impact is in all calls to the module, if they are far calls instead of
> near calls each and every call is (a hair) slower.
>
> so the code can be the same and still be slower to get to.
>
> you can argue that it's not enough slower to matter, but even Alan admits
> there is some impact.
>
> David Lang

Let's get the terminology right here (for x86 at least):
Far jump: Changes to a new code segment, absolute address
Near jump: Same code segment, 4-byte relative offset
Short jump: Same code segment, 1-byte signed offset

The kernel never uses far jumps except for some BIOS calls and during
booting. The difference betwen near and short jumps is very minute.
Short jumps are limited to +/- 128 bytes, so are really only applicable
for small loops. All function calls between object files must be near
jumps, as the assembler does not not know the distance of an unresolved
symbol and must assume the largest possible offset.

--

Brian Gerst