This is the mail archive of the sid@sourceware.org mailing list for the SID project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch][rfa] Configure mappings and memory sizes in hex


Hi,

I'm growing weary of seeing mappings and memory sizes in decimal in the config files generated by --save-temps. Does anyone have a problem with this patch which makes them appear in hex? The difference is something like

connect-bus basic-0/main-map [0=0-32767] basic-0/extra-mem-0 read-write-port
set basic-0/extra-mem-0 size 32768

becomes

connect-bus basic-0/main-map [0x0=0x0-0xffff] basic-0/extra-mem-0 read-write-port
set basic-0/extra-mem-0 size 0x10000


Dave

2006-09-14  Dave Brolley  <brolley@redhat.com>

	* commonCfg.cxx (MemCfg::set_size): Use make_numeric_attribute and pass
	std::ios::hex.
	(MapperCfg::map): Likewise.

Index: sid/main/dynamic/commonCfg.cxx
===================================================================
RCS file: /cvs/src/src/sid/main/dynamic/commonCfg.cxx,v
retrieving revision 1.16
diff -c -p -r1.16 commonCfg.cxx
*** sid/main/dynamic/commonCfg.cxx	14 Jul 2006 19:45:51 -0000	1.16
--- sid/main/dynamic/commonCfg.cxx	14 Sep 2006 19:27:03 -0000
*************** void MemCfg::set_write_latency (sid::hos
*** 86,92 ****
  void MemCfg::set_size (sid::host_int_4 sz)
  {
    my_size = sz;
!   set (this, "size", sidutil::make_attribute(sz));
  }
  
  sid::host_int_4 MemCfg::size()
--- 86,92 ----
  void MemCfg::set_size (sid::host_int_4 sz)
  {
    my_size = sz;
!   set (this, "size", "0x" + sidutil::make_numeric_attribute(sz, std::ios::hex));
  }
  
  sid::host_int_4 MemCfg::size()
*************** void MapperCfg::map (const Mapping &m) 
*** 506,531 ****
    
    string map_accessor = "[";
    if (m._wordsz.specified)
!     map_accessor += sidutil::make_attribute(m._wordsz.val) + "*";
  
    if (m._base.specified)
!     map_accessor += sidutil::make_attribute(m._base.val) + "=";
  
    // always include a low and a high. default to 0 if not specified.
    // FIXME: perhaps issuing a warning here would be better?
!   map_accessor += 
!     sidutil::make_attribute(m._low.specified ? 
! 			    m._low.val : 0) 
!     + "-"
!     + sidutil::make_attribute(m._high.specified ? 
! 			      m._high.val : 0);
  
    // Both stride and width must be specified for either to make sense.
    if (m._stride.specified && m._width.specified)
!     map_accessor += "," 
!       + sidutil::make_attribute(m._stride.val) 
!       + ","
!       + sidutil::make_attribute(m._width.val);
    
    map_accessor += "]";
  
--- 506,531 ----
    
    string map_accessor = "[";
    if (m._wordsz.specified)
!     map_accessor += "0x" + sidutil::make_numeric_attribute(m._wordsz.val, std::ios::hex) + "*";
  
    if (m._base.specified)
!     map_accessor += "0x" + sidutil::make_numeric_attribute(m._base.val, std::ios::hex) + "=";
  
    // always include a low and a high. default to 0 if not specified.
    // FIXME: perhaps issuing a warning here would be better?
!   map_accessor += "0x" + 
!     sidutil::make_numeric_attribute(m._low.specified ? 
! 				    m._low.val : 0, std::ios::hex) 
!     + "-0x"
!     + sidutil::make_numeric_attribute(m._high.specified ? 
! 				      m._high.val : 0, std::ios::hex);
  
    // Both stride and width must be specified for either to make sense.
    if (m._stride.specified && m._width.specified)
!     map_accessor += ",0x" 
!       + sidutil::make_numeric_attribute(m._stride.val, std::ios::hex) 
!       + ",0x"
!       + sidutil::make_numeric_attribute(m._width.val, std::ios::hex);
    
    map_accessor += "]";
  

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]