summaryrefslogtreecommitdiffstats
path: root/source/compiler/dtexpress.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-05-17 23:13:40 +0000
committerjkim <jkim@FreeBSD.org>2013-05-17 23:13:40 +0000
commitaf69f95bba3597db53a980597cfd371c9f6ee7cf (patch)
tree740dae2325e162bb086ea6e7e5d481c4b669e232 /source/compiler/dtexpress.c
parent00f95aec269522bc092cf85fe57fcfc19efecec9 (diff)
downloadFreeBSD-src-af69f95bba3597db53a980597cfd371c9f6ee7cf.zip
FreeBSD-src-af69f95bba3597db53a980597cfd371c9f6ee7cf.tar.gz
Import ACPICA 20130517.
Diffstat (limited to 'source/compiler/dtexpress.c')
-rw-r--r--source/compiler/dtexpress.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c
index 1120d7b..a3f9c8c 100644
--- a/source/compiler/dtexpress.c
+++ b/source/compiler/dtexpress.c
@@ -127,18 +127,22 @@ DtDoOperator (
switch (Operator)
{
case EXPOP_ONES_COMPLIMENT:
+
Result = ~RightValue;
break;
case EXPOP_LOGICAL_NOT:
+
Result = !RightValue;
break;
case EXPOP_MULTIPLY:
+
Result = LeftValue * RightValue;
break;
case EXPOP_DIVIDE:
+
if (!RightValue)
{
DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
@@ -149,6 +153,7 @@ DtDoOperator (
break;
case EXPOP_MODULO:
+
if (!RightValue)
{
DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
@@ -163,58 +168,72 @@ DtDoOperator (
break;
case EXPOP_SUBTRACT:
+
Result = LeftValue - RightValue;
break;
case EXPOP_SHIFT_RIGHT:
+
Result = LeftValue >> RightValue;
break;
case EXPOP_SHIFT_LEFT:
+
Result = LeftValue << RightValue;
break;
case EXPOP_LESS:
+
Result = LeftValue < RightValue;
break;
case EXPOP_GREATER:
+
Result = LeftValue > RightValue;
break;
case EXPOP_LESS_EQUAL:
+
Result = LeftValue <= RightValue;
break;
case EXPOP_GREATER_EQUAL:
+
Result = LeftValue >= RightValue;
break;
case EXPOP_EQUAL:
+
Result = LeftValue == RightValue;
break;
case EXPOP_NOT_EQUAL:
+
Result = LeftValue != RightValue;
break;
case EXPOP_AND:
+
Result = LeftValue & RightValue;
break;
case EXPOP_XOR:
+
Result = LeftValue ^ RightValue;
break;
case EXPOP_OR:
+
Result = LeftValue | RightValue;
break;
case EXPOP_LOGICAL_AND:
+
Result = LeftValue && RightValue;
break;
case EXPOP_LOGICAL_OR:
+
Result = LeftValue || RightValue;
break;
OpenPOWER on IntegriCloud