Technical information

Operating Precautions for CPDW9X/NT-CDR-V85X, Y-GHS-MULTI-V800
TM
Customer Notification r20tu0003ed1812 69
No. a56
The linker creates only one far_call patch function per label
Version Information
V3.5.1, V4.0.5, V4.0.5c, V4.0.7, V4.0.7a
Details
The linker creates only one far_call patch function per label, if the label is addressed in the
following way:
.extern
__NMI0:
jr _vectable+0x8
.offset 0x20
__NMI1:
jr _vectable+0x4
The linker is taking the first reference to vectable + offset and uses this address to generate the
farcall patch function. It reuses it for all references to vectable. The consequence is that the
generated code is wrong, causing the program to fail.
Command Line
Ccv850 -c
Workaround
1. Use only labels, which can be reached without far_callpatch() insertion of the linker, or
2. Use latest Patch, latest tool version, or
3. Use only unique labels like this:
__NMI0:
jr _vectable_08
.offset 0x20
__NMI1:
jr _vectable_04