Fix some sign information in the CA code.
This commit is contained in:
parent
bb37b74f98
commit
032f12af45
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue