7 liBrary
7.2.6 Compatibility with Coprocessor instructions
The S1C17 core supports coprocessor instructions.
When using a library compatible with coprocessor instructions, add the "emu_copro_process" function in Vector
Table No. 3 as shown below.
Example: Specifying vector tables (vector.c)
extern void emu_copro_process(void);
func *const vector[] = {
VECTOR(boot),
VECTOR(unalign),
VECTOR(dummy),
VECTOR(emu_copro_process)
};
Note that some models do not support coprocessor instructions.
When you create projects from the IDE, libraries compatible with coprocessor instructions can be specified only if
you selected a model that supports coprocessor instructions.
The libgccM.a library is compatible with multiplication coprocessor instructions.
The libgccMD.a library is compatible with multiplication, division, and remainder coprocessor instructions.
Table 7.2.5.1 lists functions using coprocessor instructions in libgccM.a.
Table 7.2.6.1 Functions using coprocessor instructions in libgccM.a.
function
__mulhi3
__mulsi3
Table 7.2.5.2 lists functions using coprocessor instructions in libgccMD.a.
Table 7.2.6.2 Functions using coprocessor instructions in libgccMD.a.
function
__mulhi3
__mulsi3
__divhi3
__modhi3
__udivhi3
__umodhi3
7-8
// 0
// 1
// 2
// 3
functionality
16-bit multiplication
32-bit multiplication
functionality
16-bit multiplication
32-bit multiplication
Signed 16-bit division
Signed 16-bit remainder calculation
Unsigned 16-bit division
Unsigned 16-bit remainder calculation
EPSOn
interrupt disable segment
10 cycles
14 cycles
interrupt disable segment
14 cycles
17 cycles
14 cycles
14 cycles
14 cycles
14 cycles
(C COMPilEr PaCkagE fOr S1C17 faMily) (Ver. 1.5.0)
S5U1C17001C ManUal
Need help?
Do you have a question about the S5U1C17001C and is the answer not in the manual?