This is the mail archive of the sid@sources.redhat.com 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: Remove compile time warnings in cgen-cpu.h


Hi Guys,

  I am seeking permission to apply the attached patch.  It fixes a
  couple of compile time warnings associated with the cgen-cpu.h file.
  
  The first is that it declares several void functions and then uses a
  "return <expression>" statement.  The second is that it uses the
  "reinterpret_cast<>" operator to convert between integer types and
  floating point types, which for some versions of GCC at least, does
  not work.

  The patch fixes these problems by first removing the "return"
  keyword, but leaving the expression, in the void functions and
  secondly by using a union to perform explicit conversions between
  floats and ints.

  Tested by building an xstormy16-elf sid.

  May I apply this patch ?

Cheers
  Nick

sid/components/cgen-cpu/ChangeLog
2005-04-13  Nick Clifton  <nickc@redhat.com>

	* cgen-cpu.h: Remove return operators from void	functions.
	Use unions to convert between integer and floating point types.

Index: sid/component/cgen-cpu/cgen-cpu.h
===================================================================
RCS file: /cvs/src/src/sid/component/cgen-cpu/cgen-cpu.h,v
retrieving revision 1.11
diff -c -3 -p -r1.11 cgen-cpu.h
*** sid/component/cgen-cpu/cgen-cpu.h	12 Feb 2005 16:25:45 -0000	1.11
--- sid/component/cgen-cpu/cgen-cpu.h	13 Apr 2005 10:26:37 -0000
*************** public:
*** 100,116 ****
    inline void
    SETMEMBI(PCADDR pc, ADDR addr, BI value) const
      {
!       return this->write_insn_memory_1 (pc, addr, value);
      }
    inline void
    SETMEMQI(PCADDR pc, ADDR addr, QI value) const
      {
!       return this->write_data_memory_1 (pc, addr, value);
      }
    inline void
    SETMEMUQI(PCADDR pc, ADDR addr, UQI value) const
      {
!       return this->write_data_memory_1 (pc, addr, value);
      }
    inline HI
    GETMEMHI(PCADDR pc, ADDR addr) const
--- 100,116 ----
    inline void
    SETMEMBI(PCADDR pc, ADDR addr, BI value) const
      {
!       this->write_insn_memory_1 (pc, addr, value);
      }
    inline void
    SETMEMQI(PCADDR pc, ADDR addr, QI value) const
      {
!       this->write_data_memory_1 (pc, addr, value);
      }
    inline void
    SETMEMUQI(PCADDR pc, ADDR addr, UQI value) const
      {
!       this->write_data_memory_1 (pc, addr, value);
      }
    inline HI
    GETMEMHI(PCADDR pc, ADDR addr) const
*************** public:
*** 125,136 ****
    inline void
    SETMEMHI(PCADDR pc, ADDR addr, HI value) const
      {
!       return this->write_data_memory_2 (pc, addr, value);
      }
    inline void
    SETMEMUHI(PCADDR pc, ADDR addr, UHI value) const
      {
!       return this->write_data_memory_2 (pc, addr, value);
      }
    inline SI
    GETMEMSI(PCADDR pc, ADDR addr) const
--- 125,136 ----
    inline void
    SETMEMHI(PCADDR pc, ADDR addr, HI value) const
      {
!       this->write_data_memory_2 (pc, addr, value);
      }
    inline void
    SETMEMUHI(PCADDR pc, ADDR addr, UHI value) const
      {
!       this->write_data_memory_2 (pc, addr, value);
      }
    inline SI
    GETMEMSI(PCADDR pc, ADDR addr) const
*************** public:
*** 140,146 ****
    inline void
    SETMEMSI(PCADDR pc, ADDR addr, SI value) const
      {
!       return this->write_data_memory_4 (pc, addr, value);
      }
    inline USI
    GETMEMUSI(PCADDR pc, ADDR addr) const
--- 140,146 ----
    inline void
    SETMEMSI(PCADDR pc, ADDR addr, SI value) const
      {
!       this->write_data_memory_4 (pc, addr, value);
      }
    inline USI
    GETMEMUSI(PCADDR pc, ADDR addr) const
*************** public:
*** 150,156 ****
    inline void
    SETMEMUSI(PCADDR pc, ADDR addr, USI value) const
      {
!       return this->write_data_memory_4 (pc, addr, value);
      }
    inline DI
    GETMEMDI(PCADDR pc, ADDR addr) const
--- 150,156 ----
    inline void
    SETMEMUSI(PCADDR pc, ADDR addr, USI value) const
      {
!       this->write_data_memory_4 (pc, addr, value);
      }
    inline DI
    GETMEMDI(PCADDR pc, ADDR addr) const
*************** public:
*** 160,194 ****
    inline void
    SETMEMDI(PCADDR pc, ADDR addr, DI value) const
      {
!       return this->write_data_memory_8 (pc, addr, value);
      }
    inline void
    SETMEMUDI(PCADDR pc, ADDR addr, UDI value) const
      {
!       return this->write_data_memory_8 (pc, addr, value);
      }
  
    // floats (can you think of a better way to do this?)
    inline SF
    GETMEMSF(PCADDR pc, IADDR addr) const
      {
!       return reinterpret_cast<SF>(this->read_insn_memory_4 (pc, addr));
      }
    inline void
    SETMEMSF(PCADDR pc, ADDR addr, SF value) const
      {
!       return this->write_insn_memory_4 (pc, addr, reinterpret_cast<USI>(value));
      }
- 
    inline DF
    GETMEMDF(PCADDR pc, IADDR addr) const
      {
!       return reinterpret_cast<DF>(this->read_insn_memory_8 (pc, addr));
      }
    inline void
    SETMEMDF(PCADDR pc, ADDR addr, DF value) const
      {
!       return this->write_insn_memory_8 (pc, addr, reinterpret_cast<UDI>(value));
      }
  
    // IMEM: instruction memory calls
--- 160,225 ----
    inline void
    SETMEMDI(PCADDR pc, ADDR addr, DI value) const
      {
!       this->write_data_memory_8 (pc, addr, value);
      }
    inline void
    SETMEMUDI(PCADDR pc, ADDR addr, UDI value) const
      {
!       this->write_data_memory_8 (pc, addr, value);
      }
  
    // floats (can you think of a better way to do this?)
    inline SF
    GETMEMSF(PCADDR pc, IADDR addr) const
      {
!       union
!       {
! 	SF sf;
! 	USI usi;
!       }
!       caster;
!       
!       caster.usi = this->read_insn_memory_4 (pc, addr);
!       return caster.sf;
      }
    inline void
    SETMEMSF(PCADDR pc, ADDR addr, SF value) const
      {
!       union
!       {
! 	SF sf;
! 	USI usi;
!       }
!       caster;
!       caster.sf = value;
! 	
!       this->write_insn_memory_4 (pc, addr, caster.usi);
      }
    inline DF
    GETMEMDF(PCADDR pc, IADDR addr) const
      {
!       union
!       {
! 	DF df;
! 	UDI udi;
!       }
!       caster;
!       
!       caster.udi = this->read_insn_memory_8 (pc, addr);
!       return caster.df;
      }
    inline void
    SETMEMDF(PCADDR pc, ADDR addr, DF value) const
      {
!       union
!       {
! 	DF df;
! 	UDI udi;
!       }
!       caster;
! 
!       caster.df = value;
!       this->write_insn_memory_8 (pc, addr, caster.udi);
      }
  
    // IMEM: instruction memory calls
*************** public:
*** 201,207 ****
    inline void
    SETIMEMQI(PCADDR pc, ADDR addr, QI value) const
      {
!       return this->write_insn_memory_1 (pc, addr, value);
      }
    inline UQI
    GETIMEMUQI(PCADDR pc, IADDR addr) const
--- 232,238 ----
    inline void
    SETIMEMQI(PCADDR pc, ADDR addr, QI value) const
      {
!       this->write_insn_memory_1 (pc, addr, value);
      }
    inline UQI
    GETIMEMUQI(PCADDR pc, IADDR addr) const
*************** public:
*** 211,217 ****
    inline void
    SETIMEMUQI(PCADDR pc, ADDR addr, UQI value) const
      {
!       return this->write_insn_memory_1 (pc, addr, value);
      }
    inline HI
    GETIMEMHI(PCADDR pc, IADDR addr) const
--- 242,248 ----
    inline void
    SETIMEMUQI(PCADDR pc, ADDR addr, UQI value) const
      {
!       this->write_insn_memory_1 (pc, addr, value);
      }
    inline HI
    GETIMEMHI(PCADDR pc, IADDR addr) const
*************** public:
*** 221,227 ****
    inline void
    SETIMEMHI(PCADDR pc, ADDR addr, HI value) const
      {
!       return this->write_insn_memory_2 (pc, addr, value);
      }
    inline UHI
    GETIMEMUHI(PCADDR pc, IADDR addr) const
--- 252,258 ----
    inline void
    SETIMEMHI(PCADDR pc, ADDR addr, HI value) const
      {
!       this->write_insn_memory_2 (pc, addr, value);
      }
    inline UHI
    GETIMEMUHI(PCADDR pc, IADDR addr) const
*************** public:
*** 231,237 ****
    inline void
    SETIMEMUHI(PCADDR pc, ADDR addr, UHI value) const
      {
!       return this->write_insn_memory_2 (pc, addr, value);
      }
    inline SI
    GETIMEMSI(PCADDR pc, IADDR addr) const
--- 262,268 ----
    inline void
    SETIMEMUHI(PCADDR pc, ADDR addr, UHI value) const
      {
!       this->write_insn_memory_2 (pc, addr, value);
      }
    inline SI
    GETIMEMSI(PCADDR pc, IADDR addr) const
*************** public:
*** 241,247 ****
    inline void
    SETIMEMSI(PCADDR pc, ADDR addr, SI value) const
      {
!       return this->write_insn_memory_4 (pc, addr, value);
      }
    inline USI
    GETIMEMUSI(PCADDR pc, IADDR addr) const
--- 272,278 ----
    inline void
    SETIMEMSI(PCADDR pc, ADDR addr, SI value) const
      {
!       this->write_insn_memory_4 (pc, addr, value);
      }
    inline USI
    GETIMEMUSI(PCADDR pc, IADDR addr) const
*************** public:
*** 251,257 ****
    inline void
    SETIMEMUSI(PCADDR pc, ADDR addr, USI value) const
      {
!       return this->write_insn_memory_4 (pc, addr, value);
      }
    inline DI
    GETIMEMDI(PCADDR pc, IADDR addr) const
--- 282,288 ----
    inline void
    SETIMEMUSI(PCADDR pc, ADDR addr, USI value) const
      {
!       this->write_insn_memory_4 (pc, addr, value);
      }
    inline DI
    GETIMEMDI(PCADDR pc, IADDR addr) const
*************** public:
*** 261,267 ****
    inline void
    SETIMEMDI(PCADDR pc, ADDR addr, DI value) const
      {
!       return this->write_insn_memory_8 (pc, addr, value);
      }
    inline UDI
    GETIMEMUDI(PCADDR pc, IADDR addr) const
--- 292,298 ----
    inline void
    SETIMEMDI(PCADDR pc, ADDR addr, DI value) const
      {
!       this->write_insn_memory_8 (pc, addr, value);
      }
    inline UDI
    GETIMEMUDI(PCADDR pc, IADDR addr) const
*************** public:
*** 271,281 ****
    inline void
    SETIMEMUDI(PCADDR pc, ADDR addr, UDI value) const
      {
!       return this->write_insn_memory_8 (pc, addr, value);
      }
- 
- 
- 
  };
  
  } // namespace cgen
--- 302,309 ----
    inline void
    SETIMEMUDI(PCADDR pc, ADDR addr, UDI value) const
      {
!       this->write_insn_memory_8 (pc, addr, value);
      }
  };
  
  } // namespace cgen

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