forked from Imagelibrary/rtems
@@ -1,5 +1,6 @@
|
||||
rtems_tests_PROGRAMS = whetstone
|
||||
whetstone_SOURCES = init.c
|
||||
whetstone_SOURCES = init.c whetstone.c
|
||||
whetstone_LDADD = -lm
|
||||
|
||||
dist_rtems_tests_DATA = whetstone.scn whetstone.doc
|
||||
|
||||
@@ -8,8 +9,9 @@ include $(top_srcdir)/../automake/compile.am
|
||||
include $(top_srcdir)/../automake/leaf.am
|
||||
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||
AM_CFLAGS += -fno-inline -fno-builtin
|
||||
|
||||
LINK_OBJS = $(whetstone_OBJECTS)
|
||||
LINK_OBJS = $(whetstone_OBJECTS) $(whetstone_LDADD)
|
||||
LINK_LIBS = $(whetstone_LDLIBS)
|
||||
|
||||
whetstone$(EXEEXT): $(whetstone_OBJECTS) $(whetstone_DEPENDENCIES)
|
||||
|
||||
@@ -20,15 +20,19 @@
|
||||
|
||||
const char rtems_test_name[] = "WHETSTONE";
|
||||
|
||||
static void test(void)
|
||||
{
|
||||
}
|
||||
int main(int argc, char **argv);
|
||||
|
||||
static void Init(rtems_task_argument arg)
|
||||
{
|
||||
char *argv[] = {
|
||||
"whetstone",
|
||||
"10000",
|
||||
NULL
|
||||
};
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
test();
|
||||
main(2, argv);
|
||||
|
||||
TEST_END();
|
||||
rtems_test_exit(0);
|
||||
@@ -41,6 +45,8 @@ static void Init(rtems_task_argument arg)
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_FLOATING_POINT
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_INIT
|
||||
|
||||
@@ -58,7 +58,7 @@ C**********************************************************************
|
||||
#include <math.h>
|
||||
|
||||
/* the following is optional depending on the timing function used */
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
/* map the FORTRAN math functions, etc. to the C versions */
|
||||
#define DSIN sin
|
||||
@@ -82,6 +82,15 @@ void P3(double X, double Y, double *Z);
|
||||
double T,T1,T2,E1[5];
|
||||
int J,K,L;
|
||||
|
||||
static double
|
||||
Time(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
|
||||
gettimeofday(&tv, NULL);
|
||||
return (double)tv.tv_sec + (double)tv.tv_usec * 1e-6;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
@@ -94,8 +103,8 @@ main(int argc, char *argv[])
|
||||
|
||||
/* added for this version */
|
||||
long loopstart;
|
||||
long startsec, finisec;
|
||||
float KIPS;
|
||||
double startsec, finisec;
|
||||
double KIPS;
|
||||
int continuous;
|
||||
|
||||
loopstart = 1000; /* see the note about LOOP below */
|
||||
@@ -120,7 +129,7 @@ C
|
||||
C Start benchmark timing at this point.
|
||||
C
|
||||
*/
|
||||
startsec = time(0);
|
||||
startsec = Time();
|
||||
|
||||
/*
|
||||
C
|
||||
@@ -355,7 +364,7 @@ C
|
||||
C Stop benchmark timing at this point.
|
||||
C
|
||||
*/
|
||||
finisec = time(0);
|
||||
finisec = Time();
|
||||
|
||||
/*
|
||||
C----------------------------------------------------------------
|
||||
@@ -372,10 +381,10 @@ C--------------------------------------------------------------------
|
||||
return(1);
|
||||
}
|
||||
|
||||
printf("Loops: %ld, Iterations: %d, Duration: %ld sec.\n",
|
||||
printf("Loops: %ld, Iterations: %d, Duration: %f sec.\n",
|
||||
LOOP, II, finisec-startsec);
|
||||
|
||||
KIPS = (100.0*LOOP*II)/(float)(finisec-startsec);
|
||||
KIPS = (100.0*LOOP*II)/(finisec-startsec);
|
||||
if (KIPS >= 1000.0)
|
||||
printf("C Converted Double Precision Whetstones: %.1f MIPS\n", KIPS/1000.0);
|
||||
else
|
||||
|
||||
@@ -4,8 +4,10 @@ test set name: whetstone
|
||||
|
||||
directives:
|
||||
|
||||
TBD
|
||||
None, this benchmark program depends on the compiler, standard libraries, the
|
||||
processor and the memory system. It is more or less independent of the
|
||||
operating system, except some disturbance from the system clock service.
|
||||
|
||||
concepts:
|
||||
|
||||
TBD
|
||||
This is the whetstone benchmark ported to RTEMS.
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
*** BEGIN OF TEST WHETSTONE ***
|
||||
|
||||
Loops: 10000, Iterations: 1, Duration: 347.679499 sec.
|
||||
C Converted Double Precision Whetstones: 2.9 MIPS
|
||||
*** END OF TEST WHETSTONE ***
|
||||
|
||||
Reference in New Issue
Block a user