public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: tthomas@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Simplify logical expressions.
Date: Thu, 15 Nov 2007 21:54:00 -0000	[thread overview]
Message-ID: <20071115215446.6743.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  b88be9142254b4b1c5d5cd094137f52861ad9432 (commit)
      from  690290c4dde512010e498ddc45360a12f78324e7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit b88be9142254b4b1c5d5cd094137f52861ad9432
Author: Teresa Thomas <tthomas@redhat.com>
Date:   Thu Nov 15 16:50:28 2007 -0500

    Simplify logical expressions.
    
    frysk-core/frysk/value/ChangeLog
    2007-11-15  Teresa Thomas  <tthomas@redhat.com>
    
    	* ArithmeticUnit.java (getLogicalValue): Delete
    	argument mem, define here.
    	(logicalNegation): Update.
    	(logicalOr): Update.
    	(logicalAnd): Update.
    	* AddressUnit.java (getLogicalValue): Delete.
    	* FloatingPointUnit.java (getLogicalValue): Delete.
    	* IntegerUnit.java (getLogicalValue): Delete.
    	* TestValue.java: Update.
    
    frysk-core/frysk/expr/ChangeLog
    2007-11-15  Teresa Thomas  <tthomas@redhat.com>
    
    	* CExprEvaluator.g: Update.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/expr/CExprEvaluator.g        |    8 +++---
 frysk-core/frysk/expr/ChangeLog               |    6 ++++-
 frysk-core/frysk/value/AddressUnit.java       |    7 +----
 frysk-core/frysk/value/ArithmeticUnit.java    |   33 +++++++++++-------------
 frysk-core/frysk/value/ChangeLog              |   12 +++++++++
 frysk-core/frysk/value/FloatingPointUnit.java |    8 +-----
 frysk-core/frysk/value/IntegerUnit.java       |    8 ------
 frysk-core/frysk/value/TestValue.java         |   24 +++++++----------
 8 files changed, 48 insertions(+), 58 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g
index a4f9403..5de32c6 100644
--- a/frysk-core/frysk/expr/CExprEvaluator.g
+++ b/frysk-core/frysk/expr/CExprEvaluator.g
@@ -255,16 +255,16 @@ expr returns [Value returnVar=null]
         }
     |   #(AND  v1=expr v2=expr) {
             returnVar = v1.getType().getALU(exprSymTab.getWordSize())
-                        .logicalAnd(v1, v2, exprSymTab.taskMemory()); 
+                        .logicalAnd(v1, v2); 
         }
     |   #(OR  v1=expr v2=expr) {
             returnVar = v1.getType().getALU(exprSymTab.getWordSize())
-                        .logicalOr(v1, v2,exprSymTab.taskMemory()); 
+                        .logicalOr(v1, v2); 
         }
     |   #(NOT  v1=expr) {
             // byte buffer needed for Pointer/Address types
             returnVar = v1.getType().getALU(exprSymTab.getWordSize())
-                        .logicalNegation(v1, exprSymTab.taskMemory()); 
+                        .logicalNegation(v1); 
         }
     |   #(TILDE v1=expr) {
             returnVar = v1.getType().getALU(exprSymTab.getWordSize())
@@ -273,7 +273,7 @@ expr returns [Value returnVar=null]
     |   #(COND_EXPR  log_expr=expr v1=expr v2=expr) {
             returnVar = ((log_expr.getType().getALU(log_expr.getType(), 
                         exprSymTab.getWordSize())
-                        .getLogicalValue(log_expr, exprSymTab.taskMemory())) 
+                        .getLogicalValue(log_expr)) 
                         ? v1 : v2);
         }
     |   o:OCTALINT  {
diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog
index c877379..8dc8423 100644
--- a/frysk-core/frysk/expr/ChangeLog
+++ b/frysk-core/frysk/expr/ChangeLog
@@ -1,9 +1,13 @@
+2007-11-15  Teresa Thomas  <tthomas@redhat.com>
+	
+	* CExprEvaluator.g: Update.
+
 2007-11-15  Andrew Cagney  <cagney@redhat.com>
 
 	* CExpr.g (options): Delete ASTLabelType.
 	* CExprEvaluator.g (options): Ditto.
 	* ExprAST.java: Delete.
-
+	
 2007-11-14  Andrew Cagney  <cagney@redhat.com>
 
 	* CExprAnnotator.g: Delete.
diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java
index 32b7503..094b589 100644
--- a/frysk-core/frysk/value/AddressUnit.java
+++ b/frysk-core/frysk/value/AddressUnit.java
@@ -40,7 +40,6 @@
 package frysk.value;
 
 import inua.eio.ByteOrder;
-import inua.eio.ByteBuffer;
 
 /**
  * Operation handling for pointers and addresses.
@@ -120,9 +119,5 @@ extends ArithmeticUnit
 	Location l = new ScratchLocation (v2.asBigInteger().negate().toByteArray());
 	Value v2Neg = new Value (v2.getType(), l);
 	return add (v1, v2Neg);
-    }
-
-    public boolean getLogicalValue (Value v1, ByteBuffer mem) {
-	return (v1.toPrint(Format.NATURAL, mem).equals("0x0")? false:true);
-    }      
+    }     
 }
\ No newline at end of file
diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java
index 5280224..897fd9a 100644
--- a/frysk-core/frysk/value/ArithmeticUnit.java
+++ b/frysk-core/frysk/value/ArithmeticUnit.java
@@ -39,8 +39,9 @@
 
 package frysk.value;
 
+import java.math.BigInteger;
+
 import inua.eio.ByteOrder;
-import inua.eio.ByteBuffer;
 
 /**
  * Arithmetic and Logical Operation handling
@@ -144,24 +145,20 @@ public abstract class ArithmeticUnit
     }
     
     // Logical expressions - valid for any scalar types.
-    public Value logicalAnd (Value v1, Value v2, ByteBuffer mem) {
-	boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem);
-	boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem);
-	return intType.createValue( (op1 && op2) ? 1:0);
-    }
-    public Value logicalOr (Value v1, Value v2, ByteBuffer mem) {
-	boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem);
-	boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem);
-	return intType.createValue( op1 || op2 ? 1:0);
-    }
-    public Value logicalNegation(Value v1, ByteBuffer mem) {
-	boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem);
-	return intType.createValue( op1 ? 0:1);
+    public Value logicalAnd (Value v1, Value v2) {
+	return intType.createValue( 
+		       (getLogicalValue(v1) && getLogicalValue(v2)) ? 1:0);
+    }
+    public Value logicalOr (Value v1, Value v2) {
+	return intType.createValue( 
+		       (getLogicalValue(v1) || getLogicalValue(v2)) ? 1:0);
+    }
+    public Value logicalNegation(Value v1) {
+	return intType.createValue( getLogicalValue(v1) ? 0:1);
     }     
-    public boolean getLogicalValue (Value v1, ByteBuffer mem) {
-        throw new InvalidOperatorException
-                  (v1.getType(), "getLogicalValue");
-    }  
+    public boolean getLogicalValue (Value v1) {
+	return (!(v1.asBigInteger().compareTo(BigInteger.ZERO) == 0)); 
+    }    
     
     // Assigment expressions.
     public Value plusEqual(Value v1, Value v2) {
diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog
index 9e7aed0..9265646 100644
--- a/frysk-core/frysk/value/ChangeLog
+++ b/frysk-core/frysk/value/ChangeLog
@@ -1,3 +1,15 @@
+2007-11-15  Teresa Thomas  <tthomas@redhat.com>
+
+	* ArithmeticUnit.java (getLogicalValue): Delete 
+	argument mem, define here.
+	(logicalNegation): Update.
+	(logicalOr): Update.
+	(logicalAnd): Update.
+	* AddressUnit.java (getLogicalValue): Delete.
+	* FloatingPointUnit.java (getLogicalValue): Delete. 
+	* IntegerUnit.java (getLogicalValue): Delete.	
+	* TestValue.java: Update.
+			
 2007-11-14  Teresa Thomas  <tthomas@redhat.com>
 
 	* FloatingPointUnit.java: Use intType for relational
diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java
index fcaee8f..01cfb41 100644
--- a/frysk-core/frysk/value/FloatingPointUnit.java
+++ b/frysk-core/frysk/value/FloatingPointUnit.java
@@ -39,8 +39,6 @@
 
 package frysk.value;
 
-import inua.eio.ByteBuffer;
-
 /**
  * Arithmetic and logical operation handling
  * for floating points.
@@ -103,9 +101,5 @@ public class FloatingPointUnit
     public Value notEqual (Value v1, Value v2) {
 	return intType.createValue
 	       (v1.doubleValue() != v2.doubleValue() ? 1:0);
-    }
-    
-    public boolean getLogicalValue (Value v1, ByteBuffer mem) {
-	return ((v1.doubleValue() == 0.0) ? false : true);
-    }   
+    } 
 }    
\ No newline at end of file
diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java
index 01e5636..73f2d2d 100644
--- a/frysk-core/frysk/value/IntegerUnit.java
+++ b/frysk-core/frysk/value/IntegerUnit.java
@@ -39,9 +39,6 @@
 
 package frysk.value;
 
-import java.math.BigInteger;
-import inua.eio.ByteBuffer;
-
 /**
  *  Arithmetic and logical Operation handling 
  *  for integers. All arithmetic done using 
@@ -134,9 +131,4 @@ public class IntegerUnit
 	return retType.createValue
 	       (v1.asBigInteger().not());
     }
-    
-    public boolean getLogicalValue (Value v1, ByteBuffer mem) {
-	return ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0) 
-		 ? false : true);
-    }    
 }
\ No newline at end of file
diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java
index 76b8d04..b7391af 100644
--- a/frysk-core/frysk/value/TestValue.java
+++ b/frysk-core/frysk/value/TestValue.java
@@ -39,7 +39,6 @@
 
 package frysk.value;
 
-import inua.eio.ArrayByteBuffer;
 import inua.eio.ByteOrder;
 import frysk.Config;
 import frysk.junit.TestCase;
@@ -134,13 +133,13 @@ public class TestValue
 	assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong()));
 	v3 =v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1);
 	assertEquals ("9 != 4", 9 != 4, isTrue(v3.asLong()));
-	v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1);
 	assertEquals ("9 && 4", 1, v3.asLong());
-	v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1);
 	assertEquals ("9 || 4", 1, v3.asLong());	
-	v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalNegation(v1);
 	assertEquals ("!4", 0, v3.asLong());		
-	bool = v2.getType().getALU(wordSize).getLogicalValue(v2, null);
+	bool = v2.getType().getALU(wordSize).getLogicalValue(v2);
 	assertEquals ("bool(9)", true, bool);		
 	v3 = v3.assign(v1);	
 	assertEquals ("v3 = 4", 4, v3.asLong());
@@ -205,19 +204,16 @@ public class TestValue
 	assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong()));
 	v3 = v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1);
 	assertEquals ("9 != 4", v2 != v1, isTrue(v3.asLong()));	
-	v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1);
 	assertEquals ("9 && 4", 1, v3.asLong());
-	v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1);
 	assertEquals ("9 || 4", 1, v3.asLong());			
-	v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null);
+	v3 = v1.getType().getALU(wordSize).logicalNegation(v1);
 	assertEquals ("!4", 0, v3.asLong());		
     }
     
     public void testAddressOps() 
     {
-	// Construct a buffer with a string in it.
-	ArrayByteBuffer memory
-	= new ArrayByteBuffer("0123Hello World\0>>>".getBytes());
 	Type t = new PointerType("xxx", ByteOrder.BIG_ENDIAN, 1,
 	 	 new CharType("char", ByteOrder.BIG_ENDIAN,
 			       1, true));
@@ -226,11 +222,11 @@ public class TestValue
 	Value ptr = new Value (t, l);
 	Value v1 = intType.createValue(4);
 
-	Value v = v1.getType().getALU(wordSize).logicalAnd(v1, ptr, memory);
+	Value v = v1.getType().getALU(wordSize).logicalAnd(v1, ptr);
 	assertEquals ("ptr && 4", 1, v.asLong());
-	v = v1.getType().getALU(wordSize).logicalOr(v1, ptr, memory);
+	v = v1.getType().getALU(wordSize).logicalOr(v1, ptr);
 	assertEquals ("ptr || 4", 1, v.asLong());	
-	v =  t.getALU(8).logicalNegation(ptr, memory);
+	v =  t.getALU(8).logicalNegation(ptr);
 	assertEquals("!ptr", 0, v.asLong());
     }  
 }


hooks/post-receive
--
frysk system monitor/debugger


                 reply	other threads:[~2007-11-15 21:54 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071115215446.6743.qmail@sourceware.org \
    --to=tthomas@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).