diff --git a/apps/decoder.c b/apps/decoder.c
index f893346623b046fdce936098229051de268b7c39..ca333d957234434ceba9df05feb35e1baab65a74 100644
--- a/apps/decoder.c
+++ b/apps/decoder.c
@@ -218,7 +218,7 @@ int main(
#endif
#ifdef WMOPS
reset_wmops();
- reset_mem( USE_32BITS );
+ reset_mem( USE_BYTES );
#endif
/*------------------------------------------------------------------------------------------*
diff --git a/apps/encoder.c b/apps/encoder.c
index 4740097a30745838d6f39128dacff83ad5d22a03..d2bf423f164d46249c7921681ff8fdde7d0a22d4 100644
--- a/apps/encoder.c
+++ b/apps/encoder.c
@@ -202,7 +202,7 @@ int main(
#endif
#ifdef WMOPS
reset_wmops();
- reset_mem( USE_32BITS );
+ reset_mem( USE_BYTES );
#endif
initArgStruct( &arg );
diff --git a/apps/renderer.c b/apps/renderer.c
index c1ac858c6d98c1ccbee427019a8ec917d2e25085..f66d6d1a8f85a920b594bd715cc09cdc669586c7 100644
--- a/apps/renderer.c
+++ b/apps/renderer.c
@@ -801,7 +801,7 @@ int main(
#ifdef WMOPS
reset_wmops();
- reset_mem( USE_32BITS );
+ reset_mem( USE_BYTES );
#endif
for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i )
diff --git a/ci/complexity_measurements/index_complexity.html b/ci/complexity_measurements/index_complexity.html
index de3d0975fcc69772aacacca3ef4529668869323b..0e2ec822fa6d8318ebd7463bb48c29dc0c1ea41d 100755
--- a/ci/complexity_measurements/index_complexity.html
+++ b/ci/complexity_measurements/index_complexity.html
@@ -201,25 +201,25 @@
- Max. total RAM Codec:
- 32 bit words, Encoder + Decoder
+ Encoder + Decoder
- Max. total RAM Encoder:
- 32 bit words, Encoder only
+ Encoder only
- Max. total RAM Decoder:
- 32 bit words, Decoder only
+ Decoder only
- Max. HEAP Codec:
- 32 bit words, Encoder + Decoder
+ Encoder + Decoder
- Max. HEAP Encoder
- 32 bit words, Encoder only
+ Encoder only
- Max. HEAP Decoder
- 32 bit words, Decoder only
+ Decoder only
- Max. STACK Codec:
- 32 bit words, max(Encoder, Decoder)
+ max(Encoder, Decoder)
- Max. STACK Encoder:
- 32 bit words, Encoder only
+ Encoder only
- Max. STACK Decoder:
- 32 bit words, Decoder only
+ Decoder only
@@ -261,10 +261,10 @@
- Max. total ROM Codec: Encoder + Decoder
- - Max. max PROM Encoder Library: lib_enc only
- - Max. max PROM Decoder Library: lib_dec only
- - Max. max PROM Common Library: lib_com only/li>
-
- Max. max PROM Ext Renderer Library: lib_ren only
+ - Max. Program ROM Encoder Library: lib_enc only
+ - Max. Program ROM Decoder Library: lib_dec only
+ - Max. Program ROM Common Library: lib_com only
+ - Max. Program ROM Ext Renderer Library: lib_rend only
- Max. Table ROM Encoder Library: lib_enc only
- Max. Table ROM Decoder Library: lib_dec only
@@ -707,7 +707,7 @@ function RAM() {
max: max_val,
tickFormatter: function (v, axis) {
if (graph.direction == -1)
- return v + " Word";
+ return v + " bytes";
return v;
},
invert: graph.direction == 1
@@ -755,7 +755,7 @@ function RAM() {
var text = 'Score: ' + y;
if (graph.direction == -1)
- text += " Word";
+ text += " bytes";
text += "
";
if (x > 0) {
@@ -774,7 +774,7 @@ function RAM() {
if (diff === diff) {
text += String.fromCharCode(916) + ": " + diff;
if (graph.direction == -1)
- text += " Word";
+ text += " bytes";
text += " (" + pdiff + "% " + better + ")
";
}
}
@@ -816,7 +816,7 @@ function RAM() {
text += "Logfile
";
} else {
- text = "RAM requirement: 100000 Word";
+ text = "RAM requirement: 400000 bytes";
}
showToolTip(item.pageX, item.pageY, text);
@@ -868,7 +868,7 @@ function ROM() {
max: max_val,
tickFormatter: function (v, axis) {
if (graph.direction == -1)
- return v + " Word";
+ return v + " bytes";
return v;
},
invert: graph.direction == 1
@@ -916,7 +916,7 @@ function ROM() {
var text = 'Score: ' + y;
if (graph.direction == -1)
- text += " Word";
+ text += " bytes";
text += "
";
if (x > 0) {
@@ -935,7 +935,7 @@ function ROM() {
if (diff === diff) {
text += String.fromCharCode(916) + ": " + diff;
if (graph.direction == -1)
- text += " Word";
+ text += " bytes";
text += " (" + pdiff + "% " + better + ")
";
}
}
@@ -991,7 +991,7 @@ function ROM() {
*/
} else {
- text = "ROM requirement: 200 kWord";
+ text = "ROM requirement: 800000 bytes";
}
showToolTip(item.pageX, item.pageY, text);
diff --git a/lib_debug/wmc_auto.c b/lib_debug/wmc_auto.c
index 6ee30fd269f1f90fd2437c941c2b2d01b8964e8c..0ff7786f05f57e7493782fad180053f1b2467091 100644
--- a/lib_debug/wmc_auto.c
+++ b/lib_debug/wmc_auto.c
@@ -683,7 +683,7 @@ allocator_record *allocation_list = NULL;
static int Num_Records, Max_Num_Records;
static size_t Stat_Cnt_Size = USE_BYTES;
-static const char *Count_Unit[] = { "bytes", "words", "words" };
+static const char *Count_Unit[] = { "bytes", "words", "words", "words" };
static int32_t wc_ram_size, wc_ram_frame;
static int32_t current_heap_size;
@@ -1896,7 +1896,16 @@ void print_mem( ROM_Size_Lookup_Table Const_Data_PROM_Table[] )
for ( i = 0; i < nElem; i++ )
{
- fprintf( stdout, "Program ROM size (%s): %d instruction words\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size );
+ if ( Stat_Cnt_Size > 0 )
+ {
+ /* words */
+ fprintf( stdout, "Program ROM size (%s): %d words\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size );
+ }
+ else
+ {
+ /* bytes */
+ fprintf( stdout, "Program ROM size (%s): %d bytes\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size << Stat_Cnt_Size );
+ }
}
for ( i = 0; i < nElem; i++ )
@@ -1985,11 +1994,12 @@ void print_mem( ROM_Size_Lookup_Table Const_Data_PROM_Table[] )
mem_count_summary();
#endif
- if ( Stat_Cnt_Size > 0 )
+ if ( Stat_Cnt_Size == 0 )
{
- fprintf( stdout, "\nNote: 1 word = %d bits\n", 8 << Stat_Cnt_Size );
- fprintf( stdout, "This is an optimistic estimate of memory consumption assuming that each variable type is stored with sizeof(type) bits\n" );
+ /* bytes */
+ fprintf( stdout, "\nNote: The Program ROM size is calculated under the assumption that 1 instruction word is stored with %d bytes (%d bits)\n", 1 << Stat_Cnt_Size, 8 << Stat_Cnt_Size );
}
+ fprintf( stdout, "Note: The Data ROM size is calculated using the sizeof(type) built-in function\n" );
if ( n_items_wc_intra_frame_heap > 0 )
{
diff --git a/lib_debug/wmc_auto.h b/lib_debug/wmc_auto.h
index 0a13cb7020557d6727304cfc3ac5efc8c11225e9..e2f2af4d8ffcf6436543de5ec3770c459ae26d8e 100644
--- a/lib_debug/wmc_auto.h
+++ b/lib_debug/wmc_auto.h
@@ -981,7 +981,8 @@ typedef enum
{
USE_BYTES = 0,
USE_16BITS = 1,
- USE_32BITS = 2
+ USE_32BITS = 2,
+ USE_64BITS = 3
} Counting_Size;
#if ( defined( _WIN32 ) && ( _MSC_VER <= 1800 ) && ( _MSC_VER >= 1300 ) )