Что-то вы не так делаете:
Код
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.41A/W32 EVALUATION 08/Oct/2009 12:55:42 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
[i](путм поскипаны)[/i]
##############################################################################
\ In segment CODE, align 4, keep-with-next
smull.c
1 long long mysmull(long a, long b)
2 {
3 return (long long)a * b;
\ ??mysmull:
\ 00000000 9021C3E0 SMULL R2,R3,R0,R1
\ 00000004 0200A0E1 MOV R0,R2
\ 00000008 0310A0E1 MOV R1,R3
\ 0000000C 1EFF2FE1 BX LR ;; return
4 }
Maximum stack usage in bytes:
Function CSTACK
-------- ------
mysmull(long, long) 0
Segment part sizes:
Function/Label Bytes
-------------- -----
mysmull(long, long) 16
Others 4
20 bytes in segment CODE
16 bytes of CODE memory (+ 4 bytes shared)
Errors: none
Warnings: none
P.S. На 5.20 - то же самое. Код должен генериться для режима ARM, в THUMB делается вызов библиотечной функции.