- PRAGMA_SYMBOL SYM SYM0 SYM1 SYM2 offset
The pragma symbol instruction defines a new symbol "sym", in terms
of given symbols: sym0, sym1, sym2 and an offset as:
sym = sym0 + sym1 - sym2 + offset
The offset is a 32-bit integer, and the symbols: sym0, sym1, sym2,
can assume the label "ZERO" for the value zero.
Takes no cycles to execute.
Example: PRAGMA_SYMBOL DCA_sss ZERO sss DCL_START1 0x300
ADDR DISP C5 MCC STKC FLW IOC AGU ASEL BS5 P5 BS4 C4 P4 MPC
----------------------------------------------------------------
!!SECID: 56 SLABEL: DCL_START1 SLABELID: 4212 STARTPMA:0x547 ENDPMA:0x547
0547: 000000aa 0 - - - - E - 0 00 0 0 00 -
0548: 000000bb 0 - - - - E - 0 00 0 0 00 -
0549: 000000cc 0 - - - - E - 0 00 0 0 00 -
054A: 000000dd 0 - - SRFR - E - 0 00 0 0 00 -
!!SECID: 57 LABEL: xxx STARTPMA: 0x054B LEN: 46
054B: 00000565 0 - - - - E - 0 00 0 0 00 -
054C: 00000000 0 - - - - - LFPC 0 00 0 0 00 -
None
PRAGMA_SYMBOL DCA_sss ZERO sss DCL_START1 0x300
Defines a new symbol "DCA_sss" which is the dynamic cache address of the symbol "sss".
The value of this new symbol is given by:
DCA_sss = 0 + sss - DCL_START1 + 0x300
In the above equation, "sss - DCL_START1" is the number of instructions between the
symbol sss and the symbol delimiting the start of the dynamic cache block:
DCL_START1 (see the microcode above)
and 0x300 is the start address of the section of the instruction cache where the dynamic
cache block is loaded.