pike.git/
src/
operators.c
Branch:
Tag:
Non-build tags
All tags
No tags
2014-02-16
2014-02-16 14:24:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>
9976bd1c0483288cabe329078fb9eed6795229f9 (
11
lines) (+
7
/-
4
)
[
Show
|
Annotate
]
Branch:
8.0
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);