/* * Real(kind=4) raised to real(kind=4) power. */ _f_real4 _HTOH( _f_real4 x, _f_real4 y ) { _f_real8 __pow(_f_real8 x, _f_real8 y); return ( (_f_real4) __pow((_f_real8) x, (_f_real8) y) ); }
__declspec ( naked ) void nseel_asm_pow(void) { FUNC2_ENTER *__nextBlock = __pow(*parm_b, *parm_a); FUNC_LEAVE }
int tok_atoi(token_t *tok) { int i, len = tok_strlen(tok), res = 0; if (tok_strstarts(tok, "0x")) { for (i = tok->f_char + 2; i < tok->l_char; i++) { char c = tok->str->ptr[i]; if (c >= 'A' && c <= 'Z') c += ('a' - 'A'); c = (c >= 'a') ? (c - 'a') + 10 : (c - '0'); res += c * __pow(16, len - (i - tok->f_char) - 1); } } else if (tok_strstarts(tok, "0b")) { for (i = tok->f_char + 2; i < tok->l_char; i++) res += (tok->str->ptr[i] - '0') * __pow(2, len - (i - tok->f_char) - 1); } else { for (i = tok->f_char; i < tok->l_char; i++) res += (tok->str->ptr[i] - '0') * __pow(10, len - (i - tok->f_char) - 1); } return res; }
int set_my_power_limit(u32 pl1, u32 pl2, u32 lock) { union pkg_power pp = {0}; u32 power_unit = 0; pp.limit64 = __do_get_power_limit(); system_backup.limit64 = pp.limit64; if(pp.limit.lock_until_reset) { MESSAGE_OUT("\t[!]power limit lock is on!"); return -1; } power_unit = __do_get_power_unit(); power_unit = __pow(2, power_unit); pp.limit.power_limit1 = pl1 * power_unit; pp.limit.power_limit2 = pl2 * power_unit; if( pp.limit.power_limit1 != pl1 * power_unit || pp.limit.power_limit2 != pl2 * power_unit ) { MESSAGE_OUT("\t[!]power_limit overflow!"); return -1; } pp.limit.enable1 = 1; pp.limit.enable2 = 1; pp.limit.clamping1 = 1; pp.limit.clamping2 = 1; pp.limit.lock_until_reset = lock ? 1 : 0; __do_set_power_limit(&pp); MESSAGE_OUT("\t[.]power_limit #1 : %d w", pl1); MESSAGE_OUT("\t[.]power_limit #2 : %d w", pl2); return 0; }
double _pow(double x, double y) { return __pow(x, y); }