To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 2232
  GNU C wizards?
 
Are there any GNU C/C++ wizards out there? I'm trying to write an asm() statement to describe the H8's bclr/bset instructions. I have a wicked sweet tooth for C++ syntactic sugar, and I'd like to be able to say (for example): Port6.Bit3 = true; and (...) (25 years ago, 4-Jan-99, to lugnet.robotics)
 
  Re: GNU C wizards?
 
(...) Actually, you can do that -- look at the STL implementation for BitVector<bool>. (...) This is similar to the STL implementation using a helper class for the assignments. All you need to do is pass a reference to the port object into the bit (...) (25 years ago, 4-Jan-99, to lugnet.robotics)
 
  Re: GNU C wizards?
 
On Sun, 3 Jan 1999, I wrote: =>> =>> Are there any GNU C/C++ wizards out there? I'm trying to write an =>> asm() statement to describe the H8's bclr/bset instructions. I have a =>> wicked sweet tooth for C++ syntactic sugar, and I'd like to be able (...) (25 years ago, 4-Jan-99, to lugnet.robotics)
 
  Re: GNU C wizards?
 
(...) GCC has in general done a very good job removing unnecessary code from templates. You can certainly optimize the generated code further, but you are getting the facilities of a high-level language in exchange for the (usually) small losses in (...) (25 years ago, 4-Jan-99, to lugnet.robotics)
 
  H8 bit operations (was Re: GNU C wizards?)
 
(...) After looking into it further, if the compiler has the address in a register (or will use it more than once so it will load it in a register), it does use the bset/bclr instructions. However, there is this in h8300.md: ;; Bitfield operations (...) (25 years ago, 4-Jan-99, to lugnet.robotics)
 
  Re: H8 bit operations (was Re: GNU C wizards?)
 
Ok, after more investigation the problem is twofold: 1) The compiler doesn't look at an absolute address (such as generated by #define P6DR (*(volatile unsigned char *)0xFFBB) and then used by P6DR=0). Instead, it looks for an attribute (...) (25 years ago, 5-Jan-99, to lugnet.robotics)

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR