Add wasm tacle-bench targets
This commit is contained in:
25
targets/wasm-tacle/test/cover/CMakeLists.txt
Normal file
25
targets/wasm-tacle/test/cover/CMakeLists.txt
Normal file
@ -0,0 +1,25 @@
|
||||
# ~~~
|
||||
# SPDX-License-Identifier: MIT
|
||||
# SPDX-FileCopyrightText: 2026, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)
|
||||
# ~~~
|
||||
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
project(cover)
|
||||
|
||||
set(TACLEBENCH_ROOT_PATH "${CMAKE_CURRENT_LIST_DIR}/../../..")
|
||||
set(REPOSITORY_ROOT_PATH "${CMAKE_CURRENT_LIST_DIR}/../../../..")
|
||||
|
||||
set(APP_TARGET_NAME "${CMAKE_PROJECT_NAME}")
|
||||
|
||||
if(DEFINED TACLEBENCH_VARIANT AND "${TACLEBENCH_VARIANT}" STREQUAL "inline")
|
||||
set(APP_SOURCE_FILE_PATH
|
||||
"generated/modified_sources/inline/cover.c")
|
||||
else()
|
||||
set(APP_SOURCE_FILE_PATH
|
||||
"generated/modified_sources/default/cover.c")
|
||||
endif()
|
||||
|
||||
include(${REPOSITORY_ROOT_PATH}/cmake/taclebench_wasm.cmake)
|
||||
|
||||
|
||||
57
targets/wasm-tacle/test/cover/ChangeLog.txt
Executable file
57
targets/wasm-tacle/test/cover/ChangeLog.txt
Executable file
@ -0,0 +1,57 @@
|
||||
File: cover.c
|
||||
Original provenience: Mälardalen benchmark suite,
|
||||
Source: http://www.mrtc.mdh.se/projects/wcet/wcet_bench/cover/cover.c
|
||||
|
||||
2016-03-15:
|
||||
- Made sure that cover_return returns value 0.
|
||||
|
||||
2016-01-06:
|
||||
- Added original name to generic TACLeBench header.
|
||||
- Applied TACLeBench formatting rules via
|
||||
astyle --options=doc/example/astylerc.txt
|
||||
|
||||
2015-12-03:
|
||||
- Replaced comment describing purpose of benchmark from lines 1-7
|
||||
with generic TACLeBench header.
|
||||
- Removed all "/* k switch case traversed */ comments.
|
||||
(lines 10, 144, 218)
|
||||
- Introduced comments to split file in sections for forward declarations,
|
||||
global variables, initialization-related and return-value-related functions,
|
||||
core benchmark functions, and main routine.
|
||||
- Renamed function swi10 to cover_swi10.
|
||||
- Renamed function swi50 to cover_swi50.
|
||||
- Renamed function swi120 to cover_swi120.
|
||||
- Renamed function main to cover_main.
|
||||
- Replaced local variable cnt in cover_main with global variable cover_cnt.
|
||||
- Added function cover_init that handles the initialization of cover_cnt.
|
||||
- Added function cover_return that handles the original return value of main.
|
||||
- Changed cover_main such that no value is returned.
|
||||
- Added new function main that first calls cover_init, then cover_main and
|
||||
finally returns the return value of cover_return.
|
||||
- Added forward declarations for all these functions.
|
||||
- Applied code formatting according to the following rules:
|
||||
- Lines shall not be wider than 80 characters; whenever possible, appropriate
|
||||
line breaks shall be inserted to keep lines below 80 characters
|
||||
- Indentation is done using whitespaces only, no tabs. Code is indented by
|
||||
two whitespaces
|
||||
- Two empty lines are put between any two functions
|
||||
- In non-empty lists or index expressions, opening '(' and '[' are followed by
|
||||
one whitespace, closing ')' and ']' are preceded by one whitespace
|
||||
- In comma- or colon-separated argument lists, one whitespace is put after
|
||||
each comma/colon
|
||||
- For pointer types, one whitespace is put before the '*'
|
||||
- Operators within expressions shall be preceded and followed by one
|
||||
whitespace
|
||||
- Code of then- and else-parts of if-then-else statements shall be put in
|
||||
separate lines, not in the same lines as the if-condition or the keyword
|
||||
"else"
|
||||
- Opening braces '{' denoting the beginning of code for some if-else or loop
|
||||
body shall be put at the end of the same line where the keywords "if",
|
||||
"else", "for", "while" etc. occur
|
||||
- Function arguments are specified in ANSI style, i.e.,
|
||||
float my_sqrtf( float val )
|
||||
and NOT in Kernighan&Ritchie style like, e.g.,
|
||||
float my_sqrtf( val )
|
||||
float val;
|
||||
- Tested conformance to C90 via
|
||||
clang -fsyntax-only -Weverything -Wno-unknown-pragmas -pedantic -std=c90
|
||||
702
targets/wasm-tacle/test/cover/cover.c
Executable file
702
targets/wasm-tacle/test/cover/cover.c
Executable file
@ -0,0 +1,702 @@
|
||||
/*
|
||||
|
||||
This program is part of the TACLeBench benchmark suite.
|
||||
Version 2.0
|
||||
|
||||
Name: cover
|
||||
|
||||
Author: unknown
|
||||
|
||||
Function: A program for testing many paths generated by switch-case
|
||||
statements.
|
||||
|
||||
Source: MRTC
|
||||
http://www.mrtc.mdh.se/projects/wcet/wcet_bench/cover/cover.c
|
||||
|
||||
Original name: cover
|
||||
|
||||
Changes: See ChangeLog.txt
|
||||
|
||||
License: may be used, modified, and re-distributed freely
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Forward declaration of functions
|
||||
*/
|
||||
|
||||
void cover_init( void );
|
||||
void cover_main( void );
|
||||
int cover_return( void );
|
||||
int cover_swi10( int );
|
||||
int cover_swi50( int );
|
||||
int cover_swi120( int );
|
||||
|
||||
|
||||
/*
|
||||
Declaration of global variables
|
||||
*/
|
||||
|
||||
static volatile int cover_cnt;
|
||||
|
||||
|
||||
/*
|
||||
Initialization- and return-value-related functions
|
||||
*/
|
||||
|
||||
void cover_init( void )
|
||||
{
|
||||
cover_cnt = 0;
|
||||
}
|
||||
|
||||
|
||||
int cover_return( void )
|
||||
{
|
||||
return cover_cnt - 180;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Core benchmark functions
|
||||
*/
|
||||
|
||||
int cover_swi120( int c )
|
||||
{
|
||||
int i;
|
||||
|
||||
_Pragma( "loopbound min 120 max 120" )
|
||||
for ( i = 0; i < 120; i++ ) {
|
||||
switch ( i ) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
case 60:
|
||||
c++;
|
||||
break;
|
||||
case 61:
|
||||
c++;
|
||||
break;
|
||||
case 62:
|
||||
c++;
|
||||
break;
|
||||
case 63:
|
||||
c++;
|
||||
break;
|
||||
case 64:
|
||||
c++;
|
||||
break;
|
||||
case 65:
|
||||
c++;
|
||||
break;
|
||||
case 66:
|
||||
c++;
|
||||
break;
|
||||
case 67:
|
||||
c++;
|
||||
break;
|
||||
case 68:
|
||||
c++;
|
||||
break;
|
||||
case 69:
|
||||
c++;
|
||||
break;
|
||||
case 70:
|
||||
c++;
|
||||
break;
|
||||
case 71:
|
||||
c++;
|
||||
break;
|
||||
case 72:
|
||||
c++;
|
||||
break;
|
||||
case 73:
|
||||
c++;
|
||||
break;
|
||||
case 74:
|
||||
c++;
|
||||
break;
|
||||
case 75:
|
||||
c++;
|
||||
break;
|
||||
case 76:
|
||||
c++;
|
||||
break;
|
||||
case 77:
|
||||
c++;
|
||||
break;
|
||||
case 78:
|
||||
c++;
|
||||
break;
|
||||
case 79:
|
||||
c++;
|
||||
break;
|
||||
case 80:
|
||||
c++;
|
||||
break;
|
||||
case 81:
|
||||
c++;
|
||||
break;
|
||||
case 82:
|
||||
c++;
|
||||
break;
|
||||
case 83:
|
||||
c++;
|
||||
break;
|
||||
case 84:
|
||||
c++;
|
||||
break;
|
||||
case 85:
|
||||
c++;
|
||||
break;
|
||||
case 86:
|
||||
c++;
|
||||
break;
|
||||
case 87:
|
||||
c++;
|
||||
break;
|
||||
case 88:
|
||||
c++;
|
||||
break;
|
||||
case 89:
|
||||
c++;
|
||||
break;
|
||||
case 90:
|
||||
c++;
|
||||
break;
|
||||
case 91:
|
||||
c++;
|
||||
break;
|
||||
case 92:
|
||||
c++;
|
||||
break;
|
||||
case 93:
|
||||
c++;
|
||||
break;
|
||||
case 94:
|
||||
c++;
|
||||
break;
|
||||
case 95:
|
||||
c++;
|
||||
break;
|
||||
case 96:
|
||||
c++;
|
||||
break;
|
||||
case 97:
|
||||
c++;
|
||||
break;
|
||||
case 98:
|
||||
c++;
|
||||
break;
|
||||
case 99:
|
||||
c++;
|
||||
break;
|
||||
case 100:
|
||||
c++;
|
||||
break;
|
||||
case 101:
|
||||
c++;
|
||||
break;
|
||||
case 102:
|
||||
c++;
|
||||
break;
|
||||
case 103:
|
||||
c++;
|
||||
break;
|
||||
case 104:
|
||||
c++;
|
||||
break;
|
||||
case 105:
|
||||
c++;
|
||||
break;
|
||||
case 106:
|
||||
c++;
|
||||
break;
|
||||
case 107:
|
||||
c++;
|
||||
break;
|
||||
case 108:
|
||||
c++;
|
||||
break;
|
||||
case 109:
|
||||
c++;
|
||||
break;
|
||||
case 110:
|
||||
c++;
|
||||
break;
|
||||
case 111:
|
||||
c++;
|
||||
break;
|
||||
case 112:
|
||||
c++;
|
||||
break;
|
||||
case 113:
|
||||
c++;
|
||||
break;
|
||||
case 114:
|
||||
c++;
|
||||
break;
|
||||
case 115:
|
||||
c++;
|
||||
break;
|
||||
case 116:
|
||||
c++;
|
||||
break;
|
||||
case 117:
|
||||
c++;
|
||||
break;
|
||||
case 118:
|
||||
c++;
|
||||
break;
|
||||
case 119:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
int cover_swi50( int c )
|
||||
{
|
||||
int i;
|
||||
|
||||
_Pragma( "loopbound min 50 max 50" )
|
||||
for ( i = 0; i < 50; i++ ) {
|
||||
switch ( i ) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
int cover_swi10( int c )
|
||||
{
|
||||
int i;
|
||||
|
||||
_Pragma( "loopbound min 10 max 10" )
|
||||
for ( i = 0; i < 10; i++ ) {
|
||||
switch ( i ) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
|
||||
void _Pragma( "entrypoint" ) cover_main( void )
|
||||
{
|
||||
cover_cnt = cover_swi10( cover_cnt );
|
||||
|
||||
cover_cnt = cover_swi50( cover_cnt );
|
||||
|
||||
cover_cnt = cover_swi120( cover_cnt );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Main function
|
||||
*/
|
||||
|
||||
int main( void )
|
||||
{
|
||||
cover_init();
|
||||
cover_main();
|
||||
|
||||
return cover_return();
|
||||
}
|
||||
BIN
targets/wasm-tacle/test/cover/generated/default/cover.wasm
Executable file
BIN
targets/wasm-tacle/test/cover/generated/default/cover.wasm
Executable file
Binary file not shown.
61
targets/wasm-tacle/test/cover/generated/default/cover.wat
Normal file
61
targets/wasm-tacle/test/cover/generated/default/cover.wat
Normal file
@ -0,0 +1,61 @@
|
||||
(module $cover.wasm
|
||||
(type (;0;) (func (param i32 i32)))
|
||||
(type (;1;) (func))
|
||||
(type (;2;) (func (result i32)))
|
||||
(import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
|
||||
(func $__wasm_apply_data_relocs (type 1))
|
||||
(func $cover_main (type 1)
|
||||
(local i32)
|
||||
i32.const 0
|
||||
i32.load offset=1024
|
||||
local.set 0
|
||||
i32.const 10
|
||||
i32.const 10
|
||||
call $__pragma_loopbound
|
||||
i32.const 0
|
||||
local.get 0
|
||||
i32.const 10
|
||||
i32.add
|
||||
i32.store offset=1024
|
||||
i32.const 0
|
||||
i32.load offset=1024
|
||||
local.set 0
|
||||
i32.const 50
|
||||
i32.const 50
|
||||
call $__pragma_loopbound
|
||||
i32.const 0
|
||||
local.get 0
|
||||
i32.const 50
|
||||
i32.add
|
||||
i32.store offset=1024
|
||||
i32.const 0
|
||||
i32.load offset=1024
|
||||
local.set 0
|
||||
i32.const 120
|
||||
i32.const 120
|
||||
call $__pragma_loopbound
|
||||
i32.const 0
|
||||
local.get 0
|
||||
i32.const 120
|
||||
i32.add
|
||||
i32.store offset=1024)
|
||||
(func $__original_main (type 2) (result i32)
|
||||
i32.const 0
|
||||
i32.const 0
|
||||
i32.store offset=1024
|
||||
call $cover_main
|
||||
i32.const 0
|
||||
i32.load offset=1024
|
||||
i32.const -180
|
||||
i32.add)
|
||||
(table (;0;) 1 1 funcref)
|
||||
(memory (;0;) 1)
|
||||
(global $__stack_pointer (mut i32) (i32.const 5136))
|
||||
(global (;1;) i32 (i32.const 1028))
|
||||
(global (;2;) i32 (i32.const 5136))
|
||||
(export "memory" (memory 0))
|
||||
(export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
|
||||
(export "entrypoint" (func $cover_main))
|
||||
(export "main" (func $__original_main))
|
||||
(export "__data_end" (global 1))
|
||||
(export "__heap_base" (global 2)))
|
||||
@ -0,0 +1,699 @@
|
||||
/*
|
||||
|
||||
This program is part of the TACLeBench benchmark suite.
|
||||
Version 2.0
|
||||
|
||||
Name: cover
|
||||
|
||||
Author: unknown
|
||||
|
||||
Function: A program for testing many paths generated by switch-case
|
||||
statements.
|
||||
|
||||
Source: MRTC
|
||||
http://www.mrtc.mdh.se/projects/wcet/wcet_bench/cover/cover.c
|
||||
|
||||
Original name: cover
|
||||
|
||||
Changes: See ChangeLog.txt
|
||||
|
||||
License: may be used, modified, and re-distributed freely
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
Forward declaration of functions
|
||||
*/
|
||||
|
||||
// Wasm loop bounds
|
||||
|
||||
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
|
||||
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
|
||||
|
||||
void cover_init(void);
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
||||
cover_main(void);
|
||||
int cover_return(void);
|
||||
int cover_swi10(int);
|
||||
int cover_swi50(int);
|
||||
int cover_swi120(int);
|
||||
|
||||
/*
|
||||
Declaration of global variables
|
||||
*/
|
||||
|
||||
static volatile int cover_cnt;
|
||||
|
||||
/*
|
||||
Initialization- and return-value-related functions
|
||||
*/
|
||||
|
||||
void
|
||||
cover_init(void) {
|
||||
cover_cnt = 0;
|
||||
}
|
||||
|
||||
int
|
||||
cover_return(void) {
|
||||
return cover_cnt - 180;
|
||||
}
|
||||
|
||||
/*
|
||||
Core benchmark functions
|
||||
*/
|
||||
|
||||
int
|
||||
cover_swi120(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(120, 120);
|
||||
for (i = 0; i < 120; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
case 60:
|
||||
c++;
|
||||
break;
|
||||
case 61:
|
||||
c++;
|
||||
break;
|
||||
case 62:
|
||||
c++;
|
||||
break;
|
||||
case 63:
|
||||
c++;
|
||||
break;
|
||||
case 64:
|
||||
c++;
|
||||
break;
|
||||
case 65:
|
||||
c++;
|
||||
break;
|
||||
case 66:
|
||||
c++;
|
||||
break;
|
||||
case 67:
|
||||
c++;
|
||||
break;
|
||||
case 68:
|
||||
c++;
|
||||
break;
|
||||
case 69:
|
||||
c++;
|
||||
break;
|
||||
case 70:
|
||||
c++;
|
||||
break;
|
||||
case 71:
|
||||
c++;
|
||||
break;
|
||||
case 72:
|
||||
c++;
|
||||
break;
|
||||
case 73:
|
||||
c++;
|
||||
break;
|
||||
case 74:
|
||||
c++;
|
||||
break;
|
||||
case 75:
|
||||
c++;
|
||||
break;
|
||||
case 76:
|
||||
c++;
|
||||
break;
|
||||
case 77:
|
||||
c++;
|
||||
break;
|
||||
case 78:
|
||||
c++;
|
||||
break;
|
||||
case 79:
|
||||
c++;
|
||||
break;
|
||||
case 80:
|
||||
c++;
|
||||
break;
|
||||
case 81:
|
||||
c++;
|
||||
break;
|
||||
case 82:
|
||||
c++;
|
||||
break;
|
||||
case 83:
|
||||
c++;
|
||||
break;
|
||||
case 84:
|
||||
c++;
|
||||
break;
|
||||
case 85:
|
||||
c++;
|
||||
break;
|
||||
case 86:
|
||||
c++;
|
||||
break;
|
||||
case 87:
|
||||
c++;
|
||||
break;
|
||||
case 88:
|
||||
c++;
|
||||
break;
|
||||
case 89:
|
||||
c++;
|
||||
break;
|
||||
case 90:
|
||||
c++;
|
||||
break;
|
||||
case 91:
|
||||
c++;
|
||||
break;
|
||||
case 92:
|
||||
c++;
|
||||
break;
|
||||
case 93:
|
||||
c++;
|
||||
break;
|
||||
case 94:
|
||||
c++;
|
||||
break;
|
||||
case 95:
|
||||
c++;
|
||||
break;
|
||||
case 96:
|
||||
c++;
|
||||
break;
|
||||
case 97:
|
||||
c++;
|
||||
break;
|
||||
case 98:
|
||||
c++;
|
||||
break;
|
||||
case 99:
|
||||
c++;
|
||||
break;
|
||||
case 100:
|
||||
c++;
|
||||
break;
|
||||
case 101:
|
||||
c++;
|
||||
break;
|
||||
case 102:
|
||||
c++;
|
||||
break;
|
||||
case 103:
|
||||
c++;
|
||||
break;
|
||||
case 104:
|
||||
c++;
|
||||
break;
|
||||
case 105:
|
||||
c++;
|
||||
break;
|
||||
case 106:
|
||||
c++;
|
||||
break;
|
||||
case 107:
|
||||
c++;
|
||||
break;
|
||||
case 108:
|
||||
c++;
|
||||
break;
|
||||
case 109:
|
||||
c++;
|
||||
break;
|
||||
case 110:
|
||||
c++;
|
||||
break;
|
||||
case 111:
|
||||
c++;
|
||||
break;
|
||||
case 112:
|
||||
c++;
|
||||
break;
|
||||
case 113:
|
||||
c++;
|
||||
break;
|
||||
case 114:
|
||||
c++;
|
||||
break;
|
||||
case 115:
|
||||
c++;
|
||||
break;
|
||||
case 116:
|
||||
c++;
|
||||
break;
|
||||
case 117:
|
||||
c++;
|
||||
break;
|
||||
case 118:
|
||||
c++;
|
||||
break;
|
||||
case 119:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
int
|
||||
cover_swi50(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(50, 50);
|
||||
for (i = 0; i < 50; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
int
|
||||
cover_swi10(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(10, 10);
|
||||
for (i = 0; i < 10; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
||||
cover_main(void) {
|
||||
cover_cnt = cover_swi10(cover_cnt);
|
||||
|
||||
cover_cnt = cover_swi50(cover_cnt);
|
||||
|
||||
cover_cnt = cover_swi120(cover_cnt);
|
||||
}
|
||||
|
||||
/*
|
||||
Main function
|
||||
*/
|
||||
|
||||
__attribute__((noinline)) __attribute__((export_name("main"))) int
|
||||
main(void) {
|
||||
cover_init();
|
||||
cover_main();
|
||||
|
||||
return cover_return();
|
||||
}
|
||||
@ -0,0 +1,705 @@
|
||||
/*
|
||||
|
||||
This program is part of the TACLeBench benchmark suite.
|
||||
Version 2.0
|
||||
|
||||
Name: cover
|
||||
|
||||
Author: unknown
|
||||
|
||||
Function: A program for testing many paths generated by switch-case
|
||||
statements.
|
||||
|
||||
Source: MRTC
|
||||
http://www.mrtc.mdh.se/projects/wcet/wcet_bench/cover/cover.c
|
||||
|
||||
Original name: cover
|
||||
|
||||
Changes: See ChangeLog.txt
|
||||
|
||||
License: may be used, modified, and re-distributed freely
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
Forward declaration of functions
|
||||
*/
|
||||
|
||||
// Wasm loop bounds
|
||||
|
||||
|
||||
|
||||
|
||||
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
|
||||
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
|
||||
|
||||
__attribute__((always_inline)) static inline void cover_init(void);
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint")))
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
||||
cover_main(void);
|
||||
__attribute__((always_inline)) static inline int cover_return(void);
|
||||
__attribute__((always_inline)) static inline int cover_swi10(int);
|
||||
__attribute__((always_inline)) static inline int cover_swi50(int);
|
||||
__attribute__((always_inline)) static inline int cover_swi120(int);
|
||||
|
||||
/*
|
||||
Declaration of global variables
|
||||
*/
|
||||
|
||||
static volatile int cover_cnt;
|
||||
|
||||
/*
|
||||
Initialization- and return-value-related functions
|
||||
*/
|
||||
|
||||
__attribute__((always_inline)) static inline void
|
||||
cover_init(void) {
|
||||
cover_cnt = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline)) static inline int
|
||||
cover_return(void) {
|
||||
return cover_cnt - 180;
|
||||
}
|
||||
|
||||
/*
|
||||
Core benchmark functions
|
||||
*/
|
||||
|
||||
__attribute__((always_inline)) static inline int
|
||||
cover_swi120(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(120, 120);
|
||||
for (i = 0; i < 120; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
case 60:
|
||||
c++;
|
||||
break;
|
||||
case 61:
|
||||
c++;
|
||||
break;
|
||||
case 62:
|
||||
c++;
|
||||
break;
|
||||
case 63:
|
||||
c++;
|
||||
break;
|
||||
case 64:
|
||||
c++;
|
||||
break;
|
||||
case 65:
|
||||
c++;
|
||||
break;
|
||||
case 66:
|
||||
c++;
|
||||
break;
|
||||
case 67:
|
||||
c++;
|
||||
break;
|
||||
case 68:
|
||||
c++;
|
||||
break;
|
||||
case 69:
|
||||
c++;
|
||||
break;
|
||||
case 70:
|
||||
c++;
|
||||
break;
|
||||
case 71:
|
||||
c++;
|
||||
break;
|
||||
case 72:
|
||||
c++;
|
||||
break;
|
||||
case 73:
|
||||
c++;
|
||||
break;
|
||||
case 74:
|
||||
c++;
|
||||
break;
|
||||
case 75:
|
||||
c++;
|
||||
break;
|
||||
case 76:
|
||||
c++;
|
||||
break;
|
||||
case 77:
|
||||
c++;
|
||||
break;
|
||||
case 78:
|
||||
c++;
|
||||
break;
|
||||
case 79:
|
||||
c++;
|
||||
break;
|
||||
case 80:
|
||||
c++;
|
||||
break;
|
||||
case 81:
|
||||
c++;
|
||||
break;
|
||||
case 82:
|
||||
c++;
|
||||
break;
|
||||
case 83:
|
||||
c++;
|
||||
break;
|
||||
case 84:
|
||||
c++;
|
||||
break;
|
||||
case 85:
|
||||
c++;
|
||||
break;
|
||||
case 86:
|
||||
c++;
|
||||
break;
|
||||
case 87:
|
||||
c++;
|
||||
break;
|
||||
case 88:
|
||||
c++;
|
||||
break;
|
||||
case 89:
|
||||
c++;
|
||||
break;
|
||||
case 90:
|
||||
c++;
|
||||
break;
|
||||
case 91:
|
||||
c++;
|
||||
break;
|
||||
case 92:
|
||||
c++;
|
||||
break;
|
||||
case 93:
|
||||
c++;
|
||||
break;
|
||||
case 94:
|
||||
c++;
|
||||
break;
|
||||
case 95:
|
||||
c++;
|
||||
break;
|
||||
case 96:
|
||||
c++;
|
||||
break;
|
||||
case 97:
|
||||
c++;
|
||||
break;
|
||||
case 98:
|
||||
c++;
|
||||
break;
|
||||
case 99:
|
||||
c++;
|
||||
break;
|
||||
case 100:
|
||||
c++;
|
||||
break;
|
||||
case 101:
|
||||
c++;
|
||||
break;
|
||||
case 102:
|
||||
c++;
|
||||
break;
|
||||
case 103:
|
||||
c++;
|
||||
break;
|
||||
case 104:
|
||||
c++;
|
||||
break;
|
||||
case 105:
|
||||
c++;
|
||||
break;
|
||||
case 106:
|
||||
c++;
|
||||
break;
|
||||
case 107:
|
||||
c++;
|
||||
break;
|
||||
case 108:
|
||||
c++;
|
||||
break;
|
||||
case 109:
|
||||
c++;
|
||||
break;
|
||||
case 110:
|
||||
c++;
|
||||
break;
|
||||
case 111:
|
||||
c++;
|
||||
break;
|
||||
case 112:
|
||||
c++;
|
||||
break;
|
||||
case 113:
|
||||
c++;
|
||||
break;
|
||||
case 114:
|
||||
c++;
|
||||
break;
|
||||
case 115:
|
||||
c++;
|
||||
break;
|
||||
case 116:
|
||||
c++;
|
||||
break;
|
||||
case 117:
|
||||
c++;
|
||||
break;
|
||||
case 118:
|
||||
c++;
|
||||
break;
|
||||
case 119:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
__attribute__((always_inline)) static inline int
|
||||
cover_swi50(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(50, 50);
|
||||
for (i = 0; i < 50; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
case 11:
|
||||
c++;
|
||||
break;
|
||||
case 12:
|
||||
c++;
|
||||
break;
|
||||
case 13:
|
||||
c++;
|
||||
break;
|
||||
case 14:
|
||||
c++;
|
||||
break;
|
||||
case 15:
|
||||
c++;
|
||||
break;
|
||||
case 16:
|
||||
c++;
|
||||
break;
|
||||
case 17:
|
||||
c++;
|
||||
break;
|
||||
case 18:
|
||||
c++;
|
||||
break;
|
||||
case 19:
|
||||
c++;
|
||||
break;
|
||||
case 20:
|
||||
c++;
|
||||
break;
|
||||
case 21:
|
||||
c++;
|
||||
break;
|
||||
case 22:
|
||||
c++;
|
||||
break;
|
||||
case 23:
|
||||
c++;
|
||||
break;
|
||||
case 24:
|
||||
c++;
|
||||
break;
|
||||
case 25:
|
||||
c++;
|
||||
break;
|
||||
case 26:
|
||||
c++;
|
||||
break;
|
||||
case 27:
|
||||
c++;
|
||||
break;
|
||||
case 28:
|
||||
c++;
|
||||
break;
|
||||
case 29:
|
||||
c++;
|
||||
break;
|
||||
case 30:
|
||||
c++;
|
||||
break;
|
||||
case 31:
|
||||
c++;
|
||||
break;
|
||||
case 32:
|
||||
c++;
|
||||
break;
|
||||
case 33:
|
||||
c++;
|
||||
break;
|
||||
case 34:
|
||||
c++;
|
||||
break;
|
||||
case 35:
|
||||
c++;
|
||||
break;
|
||||
case 36:
|
||||
c++;
|
||||
break;
|
||||
case 37:
|
||||
c++;
|
||||
break;
|
||||
case 38:
|
||||
c++;
|
||||
break;
|
||||
case 39:
|
||||
c++;
|
||||
break;
|
||||
case 40:
|
||||
c++;
|
||||
break;
|
||||
case 41:
|
||||
c++;
|
||||
break;
|
||||
case 42:
|
||||
c++;
|
||||
break;
|
||||
case 43:
|
||||
c++;
|
||||
break;
|
||||
case 44:
|
||||
c++;
|
||||
break;
|
||||
case 45:
|
||||
c++;
|
||||
break;
|
||||
case 46:
|
||||
c++;
|
||||
break;
|
||||
case 47:
|
||||
c++;
|
||||
break;
|
||||
case 48:
|
||||
c++;
|
||||
break;
|
||||
case 49:
|
||||
c++;
|
||||
break;
|
||||
case 50:
|
||||
c++;
|
||||
break;
|
||||
case 51:
|
||||
c++;
|
||||
break;
|
||||
case 52:
|
||||
c++;
|
||||
break;
|
||||
case 53:
|
||||
c++;
|
||||
break;
|
||||
case 54:
|
||||
c++;
|
||||
break;
|
||||
case 55:
|
||||
c++;
|
||||
break;
|
||||
case 56:
|
||||
c++;
|
||||
break;
|
||||
case 57:
|
||||
c++;
|
||||
break;
|
||||
case 58:
|
||||
c++;
|
||||
break;
|
||||
case 59:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
__attribute__((always_inline)) static inline int
|
||||
cover_swi10(int c) {
|
||||
int i;
|
||||
|
||||
__pragma_loopbound(10, 10);
|
||||
for (i = 0; i < 10; i++) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
c++;
|
||||
break;
|
||||
case 1:
|
||||
c++;
|
||||
break;
|
||||
case 2:
|
||||
c++;
|
||||
break;
|
||||
case 3:
|
||||
c++;
|
||||
break;
|
||||
case 4:
|
||||
c++;
|
||||
break;
|
||||
case 5:
|
||||
c++;
|
||||
break;
|
||||
case 6:
|
||||
c++;
|
||||
break;
|
||||
case 7:
|
||||
c++;
|
||||
break;
|
||||
case 8:
|
||||
c++;
|
||||
break;
|
||||
case 9:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
c--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint")))
|
||||
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
||||
cover_main(void) {
|
||||
cover_cnt = cover_swi10(cover_cnt);
|
||||
|
||||
cover_cnt = cover_swi50(cover_cnt);
|
||||
|
||||
cover_cnt = cover_swi120(cover_cnt);
|
||||
}
|
||||
|
||||
/*
|
||||
Main function
|
||||
*/
|
||||
|
||||
__attribute__((noinline)) __attribute__((export_name("main")))
|
||||
__attribute__((noinline)) __attribute__((export_name("main"))) int
|
||||
main(void) {
|
||||
cover_init();
|
||||
cover_main();
|
||||
|
||||
return cover_return();
|
||||
}
|
||||
Reference in New Issue
Block a user