Permalink
Browse files

Major rewrite of indexed part selects.

This patch is a major rewrite of the indexed part selects (+: and -:).

It made the following enhancements:

1. Make indexed part selects work correctly with both big and little
   endian vectors.

2. Add a warning flag that warns about constant out of bounds/or 'bx
   indexed selects.

3. Moved the -: parameter code to its own routine.

4. Added support for straddling before part selects in a CA.

5. Added more assert(! number_is_unknown) statements.

6. Add warning for &PV<> select with a signed index signal that is
  less than the width of an int. This will be fixed later.

7. Add support for loading a 'bx/'bz constant into a numeric register.

8. Add a number of signed value fixes to the compiler/code generator.

9. Major fix of draw_select_expr() in the code generator.
  • Loading branch information...
caryr authored and steveicarus committed Aug 28, 2009
1 parent 8623f80 commit 2b17366ad5d59b458042c15311c3cb5bcd467553
Showing with 482 additions and 107 deletions.
  1. +6 −0 PExpr.h
  2. +244 −67 elab_expr.cc
  3. +72 −8 elab_lval.cc
  4. +37 −9 elab_net.cc
  5. +4 −5 netlist.cc
  6. +2 −2 netlist.h
  7. +14 −1 tgt-vvp/draw_vpi.c
  8. +94 −15 tgt-vvp/eval_expr.c
  9. +9 −0 tgt-vvp/vvp_scope.c
View
@@ -339,6 +339,12 @@ class PEIdent : public PExpr {
NetScope*found,
const NetExpr*par_msb,
const NetExpr*par_lsb) const;
+ NetExpr*elaborate_expr_param_idx_do_(Design*des,
+ NetScope*scope,
+ const NetExpr*par,
+ NetScope*found,
+ const NetExpr*par_msb,
+ const NetExpr*par_lsb) const;
NetExpr*elaborate_expr_net(Design*des,
NetScope*scope,
NetNet*net,
Oops, something went wrong.

0 comments on commit 2b17366

Please sign in to comment.