diff --git a/benchmark.c b/benchmark.c new file mode 100644 index 0000000000..551d8b7c7b --- /dev/null +++ b/benchmark.c @@ -0,0 +1,29 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include + +#if defined(__CELLOS_LV2__) +#include +#endif + +unsigned long long rarch_get_performance_counter(void) +{ +#if defined(__CELLOS_LV2__) + unsigned long long time = __mftb(); +#endif + return time; +} diff --git a/benchmark.h b/benchmark.h new file mode 100644 index 0000000000..b61333699a --- /dev/null +++ b/benchmark.h @@ -0,0 +1,33 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#ifndef _RARCH_BENCHMARK_H +#define _RARCH_BENCHMARK_H + +typedef struct performance_counter_t +{ + unsigned long long start; + unsigned long long stop; +} performance_counter_t; + +unsigned long long rarch_get_performance_counter(void); + +#define RARCH_PERFORMANCE_INIT(X) performance_counter_t (X) +#define RARCH_PERFORMANCE_START(X) ((X).start = rarch_get_performance_counter()) +#define RARCH_PERFORMANCE_STOP(X) ((X).stop = rarch_get_performance_counter() - (X).start) +#define RARCH_PERFORMANCE_LOG(functionname, X) RARCH_LOG("Time taken (%s): %llu.\n", functionname, (X).stop) + +#endif diff --git a/console/griffin/griffin.c b/console/griffin/griffin.c index 3ee31ffc4e..1c44eea479 100644 --- a/console/griffin/griffin.c +++ b/console/griffin/griffin.c @@ -22,6 +22,10 @@ default_paths_t default_paths; +#if defined(__CELLOS_LV2__) +#include "../../benchmark.c" +#endif + /*============================================================ CONSOLE EXTENSIONS ============================================================ */