OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
#include <assert.h>
#include "token.h"
-
-static inline token_t psi_calc_bool_not(token_t t1, impl_val *v1, token_t t2, impl_val *v2, impl_val *res)
-{
- (void) t2;
- (void) v2;
-
- switch (t1) {
- case PSI_T_INT8:
- res->u8 = !v1->i8;
- break;
- case PSI_T_UINT8:
- res->u8 = !v1->u8;
- break;
- case PSI_T_INT16:
- res->u8 = !v1->i16;
- break;
- case PSI_T_UINT16:
- res->u8 = !v1->u16;
- break;
- case PSI_T_INT32:
- res->u8 = !v1->i32;
- break;
- case PSI_T_UINT32:
- res->u8 = !v1->u32;
- break;
- case PSI_T_INT64:
- res->u8 = !v1->i64;
- break;
- case PSI_T_UINT64:
- res->u8 = !v1->u64;
- break;
- case PSI_T_FLOAT:
- res->u8 = !v1->fval;
- break;
- case PSI_T_DOUBLE:
- res->u8 = !v1->dval;
- break;
-#if HAVE_LONG_DOUBLE
- case PSI_T_LONG_DOUBLE:
- res->u8 = !v1->ldval;
- break;
-#endif
-
- default:
- assert(0);
- break;
- }
- return PSI_T_UINT8;
-}
-
static inline token_t psi_calc_bool_or(token_t t1, impl_val *v1, token_t t2, impl_val *v2, impl_val *res)
{
switch (t1) {
if (v1->u64)
goto return_true;
break;
+#if HAVE_INT128
+ case PSI_T_INT128:
+ if (v1->i128)
+ goto return_true;
+ break;
+#endif
+
+#if HAVE_UINT128
+ case PSI_T_UINT128:
+ if (v1->u128)
+ goto return_true;
+ break;
+#endif
+
case PSI_T_FLOAT:
if (v1->fval)
goto return_true;
if (v2->u64)
goto return_true;
break;
+#if HAVE_INT128
+ case PSI_T_INT128:
+ if (v2->i128)
+ goto return_true;
+ break;
+#endif
+
+#if HAVE_UINT128
+ case PSI_T_UINT128:
+ if (v2->u128)
+ goto return_true;
+ break;
+#endif
+
case PSI_T_FLOAT:
if (v2->fval)
goto return_true;
if (!v1->u64)
goto return_false;
break;
+#if HAVE_INT128
+ case PSI_T_INT128:
+ if (!v1->i128)
+ goto return_false;
+ break;
+#endif
+
+#if HAVE_UINT128
+ case PSI_T_UINT128:
+ if (!v1->u128)
+ goto return_false;
+ break;
+#endif
+
case PSI_T_FLOAT:
if (!v1->fval)
goto return_false;
if (!v2->u64)
goto return_false;
break;
+#if HAVE_INT128
+ case PSI_T_INT128:
+ if (!v2->i128)
+ goto return_false;
+ break;
+#endif
+
+#if HAVE_UINT128
+ case PSI_T_UINT128:
+ if (!v2->u128)
+ goto return_false;
+ break;
+#endif
+
case PSI_T_FLOAT:
if (!v2->fval)
goto return_false;