pike.git/
src/
operators.c
Branch:
Tag:
Non-build tags
All tags
No tags
2014-12-04
2014-12-04 19:25:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>
dfe24db1654c671703498e14d068cc535a4b8ffa (
11
lines) (+
7
/-
4
)
[
Show
|
Annotate
]
Branch:
bill/master_archive_support
Compiler: Improved type inference for the shift operators.
5837:
ADD_EFUN2("`^",f_xor,LOG_TYPE,OPT_TRY_OPTIMIZE,optimize_binary,generate_xor); #define SHIFT_TYPE \
-
tOr
(
tAnd
(
tNot(
tFuncV(tNone, tNot(tObj), tMix)
)
, \
-
tOr(tFunc(tMix tObj,tMix),
\
+
tOr3
(
tIfnot
(tFuncV(tNone, tNot(tObj), tMix),
\
+
tOr(tFunc(tMix tObj,tMix), \
tFunc(tObj tMix,tMix))), \
-
tFunc(tInt tInt,tInt))
+
tIfnot(tFuncV(tNone, tNot(tInt), tMix), \
+
tFunc(tInt tInt,
tInt))
, \
+
tFunc(tIntPos tIntPos, tIntPos))
ADD_EFUN2("`<<", f_lsh, SHIFT_TYPE, OPT_TRY_OPTIMIZE, may_have_side_effects, generate_lsh);