MC68060 Software Package
The next two sections of the module do not require system customizing. To provide these
sections in a “black box”, they are packaged in “pseudo-assembly” files. The main advan-
tage of this method of packaging is that changing the syntax of this pseudo-assembly file
can be done by any word processor with global search and replace capability. Also, when it
is time to update the MC68060SP, only these pseudo-assembly files need to be replaced,
the system customized code does not need modification.
Figure C-2 shows an example pseudo-assembly file.
The Entry-point Dispatch Section must immediately follow the call-out dispatch table (kernel
modules only). The function entry points are implemented as address offsets from the top
of the module. Each function entry point is eight bytes in width. Each entry point contains an
unconditional branch to another location within the code section. This feature ensures that
future releases of the module would not necessitate a recompile of the system-customized
software envelope.
For example, consider the case of the M68060SP floating-point kernel module. This module
has a 128-byte call-out dispatch table. Assuming that a symbol _060FPSP_TOP points to
the top of the module, and a jump to the third function of the module is needed, the system
call is as such:
bra _060FPSP_TOP+128+(2*8)
To gain additional performance, it is possible to avoid the double-branch penalty through the
Entry-point Dispatch Section by determining the branch target of each entry point into the
associated code section function addresses. However, this may make it more difficult to
upgrade to future releases without recompiling software envelopes that call into the
The code section contains the actual M68060SP software. If the code section requires a call
to an external function, it calculates the address of the external function given the informa-
tion contained in the appropriate call-out entry. The code section is normally entered via a
branch instruction from the entry-point dispatch section.
Figure C-3 provides a visual example of the module interface. The symbol names outside
the boxes represent global symbol names defined by the system integrator. Internal sym-
bols used by the M68060SP source code are represented as labels inside the boxes. Note
that the call-out code example contains approximate code and is shown to emphasize that
module-relative address needs to be filled into the call-out dispatch table.
dc.l $60ff0000,$20920000,$60ff0000,$1f5c0000
dc.l $60ff0000,$0d040000,$60ff0000,$0eb80000
dc.l $60ff0000,$24300000,$60ff0000,$22ca0000
dc.l $00000000,$00000000,$00000000,$00000000
Figure C-2. Example Pseudo-Assembly File
Terms of Use | Privacy Policy | DMCA Policy
2006-2020 Rsmanuals.com