S5U1C17001C ManUal
EPSOn
8-27
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
8 aSSEMBlEr
8
Assemblr
Optimize patterns
The optimization process is classified under five patterns.
Optimization 1: for data transfer instructions
Example:
sub:
ret
main:
xsub.a %sp,0x4
:
xld.b %r0,[sub]
add.a %sp,0x4
ret
The assembler obtains the address of the symbol (
sub
) from the dump and map files to determine the
number of
ext
instructions to be used.
Symbol address = 0 to 0x7f:
The extended instruction (
xld.b
) is expanded with no
ext
used.
Symbol address = 0x80 to 0xfffff: The extended instruction (
xld.b
) is expanded with one
ext
used.
Symbol address = 0xfffff to 0xffffff: The extended instruction (
xld.b
) is expanded with two
ext
used.
Optimization 2: for arithmetic operation instructions
Example:
sub:
ret
main:
xsub.a %sp,0x4
:
xadd %r1,sub
add.a %sp,0x4
ret
The assembler obtains the address of the symbol (
sub
) from the dump and map files to determine the
number of
ext
instructions to be used.
Symbol address = 0 to 0x7f:
The extended instruction (
xadd
) is expanded with no
ext
used.
Symbol address = 0x80 to 0xfffff: The extended instruction (
xadd
) is expanded with one
ext
used.
Optimization 3: for relative branch instructions
(
scall
/
xcall
/
sjpr
/
xjpr
/
sjr
xx
/
xjr
xx
instructions)
Example:
sub:
ret
main:
xsub.a %sp,0x4
:
xcall sub
←
ADDR1
add.a %sp,0x4
ret
The assembler obtains the destination address (
sub
) directly from the dump and map files. The branch
address (ADDR1) is not included in the dump and map files. Therefore, the assembler counts the
instructions from the beginning address of the
main
routine that can be obtained from the dump and map
files to calculate the distance from
main
to ADDR1. The number of
ext
instructions is determined from
the branch distance calculated by subtracting the branch address from the destination address.
scall
/
xcall
/
sjpr
/
xjpr
instructions
Branch distance = -1024 to 1022:
The extended instruction is expanded with no
ext
used.
Branch distance = -16,777,216 to -1026 or 1024 to 16,777,214:
The extended instruction is expanded with one
ext
used.
Содержание S5U1C17001C
Страница 6: ......
Страница 17: ...1 General S5U1C17001C Manual 1 General ...
Страница 18: ......
Страница 21: ...1 2 Install S5U1C17001C Manual 2 Installation ...
Страница 22: ......
Страница 29: ...3 SoftDev S5U1C17001C Manual 3 Software Development Procedures ...
Страница 30: ......
Страница 103: ...4 SrcFiles S5U1C17001C Manual 4 Source files ...
Страница 104: ......
Страница 121: ...5 IDE S5U1C17001C Manual 5 gnU17 iDE ...
Страница 122: ......
Страница 365: ...6 Compiler S5U1C17001C Manual 6 C Compiler ...
Страница 366: ......
Страница 385: ...7 Library S5U1C17001C Manual 7 library ...
Страница 386: ......
Страница 404: ...7 18 EPSON S5U1C17001C Manual C Compiler Package for S1C17 Family Ver 1 5 0 7 liBrary THIS PAGE IS BLANK ...
Страница 405: ...8 Assemblr S5U1C17001C Manual 8 assembler ...
Страница 406: ......
Страница 438: ...8 32 EPSON S5U1C17001C Manual C Compiler Package for S1C17 Family Ver 1 5 0 8 aSSEMBlEr THIS PAGE IS BLANK ...
Страница 439: ...9 Linker S5U1C17001C Manual 9 linker ...
Страница 440: ......
Страница 448: ...9 8 EPSON S5U1C17001C Manual C Compiler Package for S1C17 Family Ver 1 5 0 9 linkEr THIS PAGE IS BLANK ...
Страница 449: ...10 Debugger S5U1C17001C Manual 10 Debugger ...
Страница 450: ......
Страница 625: ...10 174 EPSON S5U1C17001C Manual C Compiler Package for S1C17 Family Ver 1 5 0 10 DEBUggEr THIS PAGE IS BLANK ...
Страница 626: ...11 Tools S5U1C17001C Manual 11 Other Tools ...
Страница 627: ......
Страница 695: ...11 68 EPSON S5U1C17001C Manual C Compiler Package for S1C17 Family Ver 1 5 0 11 OTHEr TOOlS THIS PAGE IS BLANK ...
Страница 696: ...S1C17 Family C Compiler Package Quick Reference Reference ...