| | GNU C wizards? dave madden
|
| | 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 (...) (26 years ago, 4-Jan-99, to lugnet.robotics)
|
| | |
| | | | Re: GNU C wizards? John A. Tamplin
|
| | | | (...) 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 (...) (26 years ago, 4-Jan-99, to lugnet.robotics)
|
| | | | |
| | | | | | Re: GNU C wizards? dave madden
|
| | | | 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 (...) (26 years ago, 4-Jan-99, to lugnet.robotics)
|
| | | | |
| | | | | | Re: GNU C wizards? John A. Tamplin
|
| | | | (...) 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 (...) (26 years ago, 4-Jan-99, to lugnet.robotics)
|
| | | | |
| | | | | | H8 bit operations (was Re: GNU C wizards?) John A. Tamplin
|
| | | | (...) 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 (...) (26 years ago, 4-Jan-99, to lugnet.robotics)
|
| | | | |
| | | | | | Re: H8 bit operations (was Re: GNU C wizards?) John A. Tamplin
|
| | | | 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 (...) (26 years ago, 5-Jan-99, to lugnet.robotics)
|
| | | | |