Martin Whitaker
3d2e791e52
Fix for pr1887168.
...
This patch fixes some bugs in the implementation of signed integer
division with wide operands in constant expressions and adds support
for signed integer modulus with wide operands in constant expressions.
It also removes a few redundant lines of code.
2008-02-05 15:48:07 -08:00
Cary R
4cf8920e48
Fix trimming of unsigned verinum values.
...
Incorrect trimming of unsigned verinum values was causing the
compilers unsigned constant verinum pow function to give
incorrect results. This patch restores the pow compile time
optimization and fixes the trimming to always leave a single
zero in the MSB.
2008-02-05 15:40:21 -08:00
Larry Doolittle
d9ac146b8f
Spelling fixes
...
only comments and documentation
some punctuation and capitalization for good measure
Changelogs are purposefully untouched
2008-01-29 20:24:24 -08:00
Larry Doolittle
388bb93beb
Spelling fixes
...
only comments and documentation
2008-01-28 09:15:39 -08:00
Stephen Williams
76164d7711
Rework compile-time evaluation of LT and GT
...
There was much redundant code in the compile-tile handling of the
less-then and greater-then of constant expressions, and much of it
was buggy. Unify much of the code and squeeze out the bugs so that
compile-time evaluations come out correctly.
2008-01-23 20:43:13 -08:00
Stephen Williams
5b17f2039a
Fix bug in eval of <= compare
...
The compiler attempts to precalculate the results of <= comparisons.
Fix a few corner cases where the arguments are signed. Also fix the
important test of constant against non-constant where we try to test
if the non-constant value can possibly make the test fail.
2008-01-21 22:05:50 -08:00
Cary R
1ff31db2cc
Add real comparisons in continuous assignments.
...
This patch adds real comparisons in continuous assignments.
It also converts bit based constants to real values when needed
by the comparisons.
2008-01-15 19:48:26 -08:00
Stephen Williams
e97bdf8b21
Support for wide modulus operations.
...
Compile time support for wide modulus.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-10-09 21:40:08 -07:00
Stephen Williams
4af28c7526
Signed divide of 32bit values
...
Signed divide of 32bit values can overflow if done in a 32bit long
due to the truncation of sign bits. So use the large value algorithm
if the values are >= 31 bits (63 bits on 64bit machines).
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-09-01 14:38:57 -07:00
Stephen Williams
845e74c30e
Evaluate parameter expressions losslessly
...
Make sure parameter expressions are evaluated losslessly, as if
the l-value is unsigned and thus virtually infinite.
2007-06-27 22:05:36 -07:00
steve
d2ba78559a
Process Verilog escape sequences much earlier.
2007-02-25 23:08:24 +00:00
steve
2de8bafb5c
Fix padding of x when literal is sized and unsigned.
2007-01-27 05:36:11 +00:00
steve
98417cb03a
Fix calculation of verinum pow operation.
2007-01-19 05:42:04 +00:00
steve
4fb5556d1c
Handle very wide signed divide.
2006-12-08 19:56:09 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
49b65e86fe
Add support for power in constant expressions.
2006-07-31 03:50:17 +00:00
steve
71faebd6df
Make elaborate_expr methods aware of the width that the context
...
requires of it. In the process, fix sizing of the width of unary
minus is context determined sizes.
2006-06-02 04:48:49 +00:00
steve
53ae1f29c9
Fix broken subtraction of small constants.
2006-06-01 03:54:51 +00:00
steve
101b373293
Allow constant concat expressions.
2005-12-07 04:04:23 +00:00
steve
d60112d58b
Handle null string as a single nul character.
2004-05-18 18:43:15 +00:00
steve
38ec4b7851
Support unsigned divide of huge numbers.
2004-02-17 06:52:55 +00:00
steve
1c99c629b1
Support constant evaluation of binary ^ operator.
2003-10-26 04:54:56 +00:00
steve
5ee1b465e9
Get length of trimed unsigned value right.
2003-05-25 03:01:19 +00:00
steve
bab0924d86
Make some effort to preserve bits while
...
operating on constant values.
2003-04-14 03:40:21 +00:00
steve
47060bfedd
Prevent overrun comparing verinums to zero.
2003-04-03 04:30:00 +00:00
steve
ff2ec85b61
Fix conversion of signed numbes to long
2003-02-02 00:43:16 +00:00
steve
e941e7e805
Spelling fixes.
2003-01-30 16:23:07 +00:00
steve
4de141ab1d
Support parameters with defined ranges.
2002-08-19 02:39:16 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
844fe3b9bc
Trim leading nulls from string forms.
2002-04-27 23:26:24 +00:00
steve
d94a40ecd9
Display string verinums as strings.
2002-04-27 04:48:43 +00:00
steve
9756cb6382
Propagate sign in unary minus.
2002-02-01 05:09:14 +00:00
steve
e20acfc9f9
Include s indicator in dump of signed numbers.
2001-12-31 00:02:33 +00:00
steve
9d1a81ce2c
Handle division and modulus by zero while
...
evaluating run-time constants.
2001-11-19 02:54:12 +00:00
steve
9572ddd7e8
Support more real arithmetic in delay constants.
2001-11-06 06:11:55 +00:00
steve
b825f8d2b2
Create a config.h.in file to hold all the config
...
junk, and support gcc 3.0. (Stephan Boettcher)
2001-07-25 03:10:48 +00:00
steve
7ef3b44ab1
support evaluation of constant < in expressions.
2001-02-09 05:44:23 +00:00
steve
4b0e5bd173
trim the length of unsized numbers.
2001-02-08 05:38:18 +00:00
steve
2fbc0af1ea
Fix expression widths for rvalues and parameters (PR#131,132)
2001-02-07 21:47:13 +00:00
steve
94a1d59817
Support constant evaluation of / and % (PR#124)
2001-02-07 02:46:31 +00:00
steve
b6a18098c7
Evaluate constant &, | and unary ~.
2001-01-02 03:23:40 +00:00
steve
084a464cf1
Support decimal constants in behavioral delays.
2000-12-10 22:01:35 +00:00
steve
700bcfda70
handel, by truncation, verinums that are to long for long integers.
2000-09-28 03:55:55 +00:00
steve
fff759de20
multiply in parameter expressions.
2000-09-27 18:28:37 +00:00
steve
ddcba9d91f
The + operator now preserves signedness.
2000-09-07 22:37:10 +00:00
steve
8b03550a1e
Fix subract of short value form long one.
2000-06-12 03:56:51 +00:00
steve
843af31958
Some compilers do not accept the not symbol.
2000-02-23 04:43:43 +00:00
steve
b734ecf02f
Macintosh compilers do not support ident.
2000-02-23 02:56:53 +00:00
steve
d6f53b2582
Initial support for signed constants.
2000-01-07 03:45:49 +00:00
steve
848110bc33
Only sign-extend unsized numbers.
2000-01-06 05:57:06 +00:00