User`s guide

System LSI Division, Semiconductor Business
16 Property of Samsung Electronics Co., Ltd.
V1.54e
May 20
th
,
2004
Const expression admission in ‘_at_’
syntax in previous version
[type-specifier] variable-name _at_ address[,eeprom];
new syntax
[type-specifier] variable-name _at_ address[,eeprom];
in address field const expressions is supported.
int i0 _at_ 0x200; // ok
int i1 _at_ (0x200); // ok
int i2 _at_ (0x200+0x10); // ok
V1.54d
May 20
th
,
2004
crash when compiling below code
unsigned int i, j;
unsigned char k;
i = (i++)*k;
V1.54c - Internal version
V1.54b
May 04
th
,
2004
Fallacy in checking type
extern const int i;
const int i;
Even if the above code is correct, the following error is generated.
error: redeclaration of ‘_i’ previously declared at corresponding filename
V1.54a
Apr. 28
th
,
2004
Incorrect optimization of long type
LD A12,#_NVM_var1
LD R4,R12
LD R5,E12
SUB R4,#>0x80000
SBC R5,#<0x80000
LDW @[SP+2],A12 ;arg long
Above instead of a12 the value r4 and r5 is loaded in stack.
So LDW @[SP+2],A12
should be replaced with
LDW @[SP+2],R5 ;arg high
LDW @[SP+4],R4 ;arg low
4.2.3 Optimizer – Calmopt16.dll
Version Released date Comments
V1.56d June 26
th
, 2006 Just, version name is changed
V1.56d_
beta2
June. 8
th
2006
Fixed: For function with “#pragma function=interrupt_swi_withbody num”
pattern, optimizer modified to treat as normal function prolog. This
means that kinds of interrupt handler function doesn’t have push/pop
for temporary register as general function.
V1.56d_
beta
Apr. 24
th
2006
Fixed: Modified to make SWI call instruction into fully normal function call.
V1.56c Mar. 28
th
, 2006
New: From this version, optimizer assumes that C level SWI interrupt handler
routine can have return value.
V1.56b Feb. 20
th
, 2006 Fixed: Constant propagation and copy propagation bug fix
V1.56a Nov. 15
th
, 2005
Fixed: At BSRD optimization, there was problem in instruction counting for
inline assembly.
V1.56 Oct. 27
th
, 2005 Just, version name is changed.
V1.56_b
eta2
Aug. 19
th
, 2005
Fixed: Because of internal incorrect written register information of code Library
$__gen2_... a push operation was missed for some register.