90 lines
1.6 KiB
C
90 lines
1.6 KiB
C
/*
|
|
|
|
This program is part of the TACLeBench benchmark suite.
|
|
Version V 1.9
|
|
|
|
Name: deg2rad
|
|
|
|
Author: unknown
|
|
|
|
Function: deg2rad performs conversion of degree to radiant
|
|
|
|
Source: MiBench
|
|
http://wwweb.eecs.umich.edu/mibench
|
|
|
|
Original name: basicmath_small
|
|
|
|
Changes: no major functional changes
|
|
|
|
License: this code is FREE with no restrictions
|
|
|
|
*/
|
|
|
|
#include "pi.h"
|
|
|
|
// Wasm loop bounds
|
|
|
|
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
|
|
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
|
|
|
|
#define deg2rad(d) ((d) * PI / 180)
|
|
|
|
/*
|
|
Forward declaration of functions
|
|
*/
|
|
|
|
void deg2rad_init(void);
|
|
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
|
deg2rad_main(void);
|
|
int deg2rad_return(void);
|
|
__attribute__((noinline)) __attribute__((export_name("main"))) int main(void);
|
|
|
|
/*
|
|
Declaration of global variables
|
|
*/
|
|
|
|
float deg2rad_X, deg2rad_Y;
|
|
|
|
/*
|
|
Initialization function
|
|
*/
|
|
|
|
void
|
|
deg2rad_init(void) {
|
|
deg2rad_X = 0;
|
|
deg2rad_Y = 0;
|
|
}
|
|
|
|
/*
|
|
Return function
|
|
*/
|
|
|
|
int
|
|
deg2rad_return(void) {
|
|
int temp = deg2rad_Y;
|
|
|
|
if (temp == 1133)
|
|
return 0;
|
|
else
|
|
return -1;
|
|
}
|
|
|
|
/*
|
|
Main functions
|
|
*/
|
|
|
|
__attribute__((noinline)) __attribute__((export_name("entrypoint"))) void
|
|
deg2rad_main(void) {
|
|
/* convert some rads to degrees */
|
|
__pragma_loopbound(361, 361);
|
|
for (deg2rad_X = 0.0f; deg2rad_X <= 360.0f; deg2rad_X += 1.0f)
|
|
deg2rad_Y += deg2rad(deg2rad_X);
|
|
}
|
|
|
|
__attribute__((noinline)) __attribute__((export_name("main"))) int
|
|
main(void) {
|
|
deg2rad_init();
|
|
deg2rad_main();
|
|
return deg2rad_return();
|
|
}
|