PP(pp_sin)
{
- dVAR; dSP; dTARGET; tryAMAGICun(sin);
+ dVAR; dSP; dTARGET; tryAMAGICun_var(sin_amg);
{
const NV value = POPn;
XPUSHn(Perl_sin(value));
PP(pp_cos)
{
- dVAR; dSP; dTARGET; tryAMAGICun(cos);
+ dVAR; dSP; dTARGET; tryAMAGICun_var(cos_amg);
{
const NV value = POPn;
XPUSHn(Perl_cos(value));
PP(pp_exp)
{
- dVAR; dSP; dTARGET; tryAMAGICun(exp);
+ dVAR; dSP; dTARGET; tryAMAGICun_var(exp_amg);
{
NV value;
value = POPn;
PP(pp_log)
{
- dVAR; dSP; dTARGET; tryAMAGICun(log);
+ dVAR; dSP; dTARGET; tryAMAGICun_var(log_amg);
{
const NV value = POPn;
if (value <= 0.0) {
PP(pp_sqrt)
{
- dVAR; dSP; dTARGET; tryAMAGICun(sqrt);
+ dVAR; dSP; dTARGET; tryAMAGICun_var(sqrt_amg);
{
const NV value = POPn;
if (value < 0.0) {
*/
#define PUTBACK PL_stack_sp = sp
-#define RETURN return PUTBACK, NORMAL
-#define RETURNOP(o) return PUTBACK, o
-#define RETURNX(x) return x, PUTBACK, NORMAL
+#define RETURN return (PUTBACK, NORMAL)
+#define RETURNOP(o) return (PUTBACK, o)
+#define RETURNX(x) return (x, PUTBACK, NORMAL)
#define POPs (*sp--)
#define POPp (SvPVx(POPs, PL_na)) /* deprecated */
#define tryAMAGICbinSET_var(meth_enum,assign) \
tryAMAGICbinW_var(meth_enum,assign,SETs)
-#define AMG_CALLun(sv,meth) amagic_call(sv,&PL_sv_undef, \
- CAT2(meth,_amg),AMGf_noright | AMGf_unary)
+#define AMG_CALLun_var(sv,meth_enum) amagic_call(sv,&PL_sv_undef, \
+ meth_enum,AMGf_noright | AMGf_unary)
+#define AMG_CALLun(sv,meth) AMG_CALLun_var(sv,CAT2(meth,_amg))
+
#define AMG_CALLbinL(left,right,meth) \
amagic_call(left,right,CAT2(meth,_amg),AMGf_noright)
-#define tryAMAGICunW(meth,set,shift,ret) STMT_START { \
+#define tryAMAGICunW_var(meth_enum,set,shift,ret) STMT_START { \
SV* tmpsv; \
SV* arg= sp[shift]; \
if(0) goto am_again; /* shut up unused warning */ \
am_again: \
if ((SvAMAGIC(arg))&&\
- (tmpsv=AMG_CALLun(arg,meth))) {\
+ (tmpsv=AMG_CALLun_var(arg,meth_enum))) {\
SPAGAIN; if (shift) sp += shift; \
set(tmpsv); ret; } \
} STMT_END
+#define tryAMAGICunW(meth,set,shift,ret) \
+ tryAMAGICunW_var(CAT2(meth,_amg),set,shift,ret)
#define FORCE_SETs(sv) STMT_START { sv_setsv(TARG, (sv)); SETTARG; } STMT_END
-#define tryAMAGICun(meth) tryAMAGICunW(meth,SETsvUN,0,RETURN)
+#define tryAMAGICun_var(meth_enum) tryAMAGICunW_var(meth_enum,SETsvUN,0,RETURN)
+#define tryAMAGICun(meth) tryAMAGICun_var(CAT2(meth,_amg))
#define tryAMAGICunSET(meth) tryAMAGICunW(meth,SETs,0,RETURN)
#define tryAMAGICunTARGET(meth, shift) \
STMT_START { dSP; sp--; /* get TARGET from below PL_stack_sp */ \