Fix some sign information in the CA code.

This commit is contained in:
Cary R 2013-07-29 10:21:54 -07:00
parent bb37b74f98
commit 032f12af45
4 changed files with 10 additions and 7 deletions

View File

@ -224,8 +224,8 @@ unsigned PEBinary::test_width(Design*des, NetScope*scope, width_mode_t&mode)
break; break;
case 'l': // << Should be handled by PEBShift case 'l': // << Should be handled by PEBShift
case 'r': // << Should be handled by PEBShift case 'r': // >> Should be handled by PEBShift
case 'R': // << Should be handled by PEBShift case 'R': // >>> Should be handled by PEBShift
case '<': // < Should be handled by PEBComp case '<': // < Should be handled by PEBComp
case '>': // > Should be handled by PEBComp case '>': // > Should be handled by PEBComp
case 'e': // == Should be handled by PEBComp case 'e': // == Should be handled by PEBComp

View File

@ -615,7 +615,8 @@ NetNet* NetEBShift::synthesize(Design*des, NetScope*scope, NetExpr*root)
// to the amount left by the shift. // to the amount left by the shift.
NetPartSelect*psel = new NetPartSelect(lsig, shift<0? ushift : 0, NetPartSelect*psel = new NetPartSelect(lsig, shift<0? ushift : 0,
part_width, part_width,
NetPartSelect::VP); NetPartSelect::VP,
signed_flag && right_flag);
psel->set_line(*this); psel->set_line(*this);
des->add_node(psel); des->add_node(psel);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1998-2012 Stephen Williams (steve@icarus.com) * Copyright (c) 1998-2013 Stephen Williams (steve@icarus.com)
* *
* This source code is free software; you can redistribute it * This source code is free software; you can redistribute it
* and/or modify it in source code form under the terms of the GNU * and/or modify it in source code form under the terms of the GNU
@ -977,9 +977,10 @@ const NetDelaySrc* NetNet::delay_path(unsigned idx) const
} }
NetPartSelect::NetPartSelect(NetNet*sig, unsigned off, unsigned wid, NetPartSelect::NetPartSelect(NetNet*sig, unsigned off, unsigned wid,
NetPartSelect::dir_t dir__) NetPartSelect::dir_t dir__,
bool signed_flag__)
: NetNode(sig->scope(), sig->scope()->local_symbol(), 2), : NetNode(sig->scope(), sig->scope()->local_symbol(), 2),
off_(off), wid_(wid), dir_(dir__), signed_flag_(false) off_(off), wid_(wid), dir_(dir__), signed_flag_(signed_flag__)
{ {
set_line(*sig); set_line(*sig);

View File

@ -2027,7 +2027,8 @@ class NetPartSelect : public NetNode {
enum dir_t { VP, PV}; enum dir_t { VP, PV};
explicit NetPartSelect(NetNet*sig, explicit NetPartSelect(NetNet*sig,
unsigned off, unsigned wid, dir_t dir); unsigned off, unsigned wid, dir_t dir,
bool signed_flag__ = false);
explicit NetPartSelect(NetNet*sig, NetNet*sel, explicit NetPartSelect(NetNet*sig, NetNet*sel,
unsigned wid, bool signed_flag__ = false); unsigned wid, bool signed_flag__ = false);
~NetPartSelect(); ~NetPartSelect();