Index

B |
| Build Targets linux/ core_portme.mak PIC32/ core_portme.mak
| Building and running
C |
| CC
| CFLAGS linux/ core_portme.mak PIC32/ core_portme.mak
| cmp_complex
| cmp_idx
| Configuration coremark.h linux/ core_portme.h
| core_bench_matrix
| core_bench_state
| core_init_state
| core_list_find
| core_list_init
| core_list_insert
| core_list_join.c
| core_list_mergesort
| core_list_remove
| core_list_reverse
| core_list_undo_remove
| core_main.c
| core_matrix.c
| core_portme.c
| core_portme.h
| core_portme.mak linux/ core_portme.mak PIC32/ core_portme.mak
| core_start_parallel
| core_state.c
| core_state_transition
| core_stop_parallel
| CORE_TICKS
| core_util.c
| CoreMark
| coremark.h
| crc*
| Credits
D |
| default_num_contexts
| Description core_list_join.c core_matrix.c core_state.c coremark.h linux/ core_portme.h
| Documentation
F |
| Functions core_list_join.c core_main.c core_matrix.c core_state.c core_util.c
G |
| get_seed
| get_time
H |
| HAS_FLOAT
| HAS_PRINTF
| HAS_STDIO
| HAS_TIME_H
I |
| iterate
L |
| Legal
| LFLAGS_END linux/ core_portme.mak PIC32/ core_portme.mak
| LOAD
| Log File Format
M |
| main
| MAIN_HAS_NOARGC
| MAIN_HAS_NORETURN
| matrix_add_const
| matrix_mul_const
| matrix_mul_matrix
| matrix_mul_matrix_bitextract
| matrix_mul_vect
| matrix_sum
| matrix_test
| MEM_METHOD
| MULTITHREAD
O |
| OPATH linux/ core_portme.mak PIC32/ core_portme.mak
| OUTFLAG linux/ core_portme.mak PIC32/ core_portme.mak
P |
| PERL linux/ core_portme.mak PIC32/ core_portme.mak
| PORT_OBJS linux/ core_portme.mak PIC32/ core_portme.mak
| port_postbuild linux/ core_portme.mak PIC32/ core_portme.mak
| port_postload linux/ core_portme.mak PIC32/ core_portme.mak
| port_postrun linux/ core_portme.mak PIC32/ core_portme.mak
| port_prebuild linux/ core_portme.mak PIC32/ core_portme.mak
| port_preload linux/ core_portme.mak PIC32/ core_portme.mak
| port_prerun linux/ core_portme.mak PIC32/ core_portme.mak
| PORT_SRCS
| portable_fini
| portable_free
| portable_init
| portable_malloc
R |
| Release Notes
| Reporting rules
| RUN
| Run rules

Download the release files from the www.coremark.org.
Use this flag to define compiler to use
Use this flag to define compiler options.

> ee_s32 cmp_complex( | list_data | * | a,
> | list_data | * | b,
> | core_results | * | res | )

Compare the data item in a list cell.

> ee_s32 cmp_idx( | list_data | * | a,
> | list_data | * | b,
> | core_results | * | res | )

Compare the idx item in a list cell, and regen the data.

> ee_u16 core_bench_matrix( | mat_params | * | p,
> | ee_s16 |  | seed,
> | ee_u16 |  | crc | )

Benchmark function

> ee_u16 core_bench_state( | ee_u32 |  | blksize,
> | ee_u8 | * | memblock,
> | ee_s16 |  | seed1,
> | ee_s16 |  | seed2,
> | ee_s16 |  | step,
> | ee_u16 |  | crc | )

Benchmark function

> void core_init_state( | ee_u32 |  | size,
> | ee_s16 |  | seed,
> | ee_u8 | * | p | )

Initialize the input data for the state machine.

> list_head *core_list_find( | list_head | * | list,
> | list_data | * | info | )

Find an item in the list

> list_head *core_list_init( | ee_u32 |  | blksize,
> | list_head | * | memblock,
> | ee_s16 |  | seed | )

Initialize list with data.

> list_head *core_list_insert_new( |  | list_head | * | insert_point,
> |  | list_data | * | info,
> |  | list_head | ** | memblock,
> | list_data | **datablock |  | ,
> |  | list_head | * | memblock_end,
> |  | list_data | * | datablock_end | )

Insert an item to the list

> list_head *core_list_mergesort( | list_head | * | list,
> | list_cmp |  | cmp,
> | core_results | * | res | )

Sort the list in place without recursion.

> list_head *core_list_remove( | list_head | * | item | )

Remove an item from the list.

> list_head *core_list_reverse( | list_head | * | list | )

Reverse a list

> list_head *core_list_undo_remove( | list_head | * | item_removed,
> | list_head | * | item_modified | )

Undo a remove operation.
This file contains the framework to acquire a block of memory, seed initial parameters, tun t he benchmark and report the results.
Start benchmarking in a parallel context.

> enum CORE_STATE core_state_transition( | ee_u8 | **instr |  | ,
> |  | ee_u32 | * | transition_count | )

Actual state machine.
Stop a parallel context execution of coremark, and gather the results.
Define type of return from the timing functions.
Service functions to calculate 16b CRC code.
Many thanks to all of the individuals who helped with the development or testing of CoreMark including (Sorted by company name)

> extern ee_u32 default_num_contexts

Number of contexts to spawn in multicore context.
Benchmark using a linked list.
When you unpack the documentation (tar -vzxf coremark_version_docs.tgz) a docs folder will be created.
Get a values that cannot be determined at compile time.

> CORE_TICKS get_time( | void | )

Return an abstract “ticks” number that signifies time on the system.
Define to 1 if the platform supports floating point.
Define to 1 if the platform has stdio.h and implements the printf function.
Define to 1 if the platform has stdio.h.
Define to 1 if platform has the time.h header file, and implementation of functions thereof.
Run the benchmark for a specified number of iterations.
See LICENSE.txt or the word document file under docs/LICENSE.doc.
Define any libraries needed for linking or other flags that should come at the end of the link line (e.g.
Define this flag if you need to load to a target, as in a cross compile environment.
The log files have the following format

> #if MAIN_HAS_NOARGC MAIN_RETURN_TYPE main( | void | )

Main entry routine for the benchmark.
Needed if platform does not support getting arguments to main.
Needed if platform does not support returning a value from main.

> void matrix_add_const( | ee_u32 |  | N,
> | MATDAT | * | A,
> | MATDAT |  | val | )

Add a constant value to all elements of a matrix.

> void matrix_mul_const( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT | * | A,
> | MATDAT |  | val | )

Multiply a matrix by a constant.

> void matrix_mul_matrix( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT | * | A,
> | MATDAT | * | B | )

Multiply a matrix by a matrix.

> void matrix_mul_matrix_bitextract( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT | * | A,
> | MATDAT | * | B | )

Multiply a matrix by a matrix, and extract some bits from the result.

> void matrix_mul_vect( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT | * | A,
> | MATDAT | * | B | )

Multiply a matrix by a vector.

> ee_s16 matrix_sum( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT |  | clipval | )

Calculate a function that depends on the values of elements in the matrix.

> ee_s16 matrix_test( | ee_u32 |  | N,
> | MATRES | * | C,
> | MATDAT | * | A,
> | MATDAT | * | B,
> | MATDAT |  | val | )

Perform matrix manipulation.
Defines method to get a block of memry.
Define for parallel execution
Use this flag to define how to to get an executable (e.g -o)
Define perl executable to calculate the geomean if running separate.
Port specific object files can be added here
Generate any files that are needed after actual build end.
Do platform specific after load stuff.
Do platform specific after run stuff.
Generate any files that are needed before actual build starts.
Do platform specific before load stuff.
Do platform specific after run stuff.
Port specific source files can be added here

> void portable_fini( | core_portable | * | p | )

Target specific final code

> void portable_free( | void | * | p | )

Provide free() functionality in a platform specific way.

> void portable_init( | core_portable | * | p,
> | int | * | argc,
> | char | * | argv[] | )

Target specific initialization code Test for some common mistakes.

> void *portable_malloc( | size_t | size | )

Provide malloc() functionality in a platform specific way.
Version: 1.01
How to report results on a data sheet?
Define this flag if running does not consist of simple invocation of the binary.
What is and is not allowed.
Close