I have the latest gcc from svn, and with "configure --target=avr
--enable-languages=c":
When building with "make" eventually I get:
gcc -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wmissing-format-a
On 3/19/10, Dave Korn wrote:
> On 16/03/2010 09:15, Sean D'Epagnier wrote:
>
> Do you have a copyright assignment on file for GCC? For a non-trivial
> contribution of this size, it's a requirement before the patch can be
> accepted.
>
Yes this should be fine.
> The problem is that it won't be as simple as that. You'll have to extend
> the C++ parser to accept those new RID_ values that it was previously never
> expecting to see in those contexts, I would think (but haven't verified
> against the source yet). The C++ parser is a hand-coded recursive-
It looks like my patches for avr target to get native fixed-point
support may be included soon. I realized that many users use avr-g++
for their projects, and I cannot get the fixed point types working in
c++. The question is generic and should apply to all targets.
Compiling a simple test prog
Hi,
I found a few more cases that still cause internal compiler errors, I
managed to fix them. I have attached an updated patch.
Sean
On Tue, Mar 17, 2009 at 12:45 PM, Fu, Chao-Ying wrote:
> Sean D'Epagnier wrote:
>>
>> I think I found a generic problem for fixed po
Hi,
I think I found a generic problem for fixed point constant folding.
In fold-const.c:11872 gcc tries to apply:
/* Transform (x >> c) << c into x & (-1<> c
into x & ((unsigned)-1 >> c) for unsigned types. */
I attached a simple patch which fixes the problem by not applying this
Hi,
I just added support for printf and scanf of fixed point types to avr
libc. I wanted to handle:
Currently "accum" and "fract" work, but not "short accum" or "short fract"
This is not a problem for integers currently since they get type
promoted when passed with stdarg.
There is nothing i
Hi,
I have a rule in machine descriptor:
(define_insn "fract2"
[(set (match_operand:FIXED1 0 "register_operand" "")
(fract_convert:FIXED1 (match_operand:FIXED2 1
"register_operand" "")))]
""
"* return fract_out (insn, operands, 1, NULL);"
[(set_attr "cc" "clobber")])
Basically it
Hi,
I am currently working on adding native fixed-point support to the avr
backend. A lot of stuff is working, but there are a few things left,
one of them is conversions from fixed point to floating point.
I have conversions between all integer and fixed point types working
as well as SA to SF
I am working toward efficient support of some of the sfixed point
types on avr architecture.
I started out by writing an assembly library to handle all of the
conversions to and from various fixed point, integer, and floating
point types. In many cases the functions are only 1 or 2
instructions,
Hi, I have found another bug for the m6812 front end, the error is:
-> SNS.cpp: In member function `void a::d()':
-> SNS.cpp:15: error: unable to find a register to spill in class `A_OR_SP_REGS'
-> SNS.cpp:15: error: this is the insn:
-> (insn 14 13 15 0 0xb7dca6b4 (parallel [
-> (set
Hi, I changed:
(match_operand:HI 2 "general_operand" "")))]
to
(match_operand:HI 2 "splitable_operand" "")))]
as suggested, and the problem seems to be solved!
I posted a bug report the the m68hc1x site, I will post a follow up.
Thanks,
Sean D'Epagnier
as well.
I am trying to find out what part of gcc to look in so I can make the change so
that the and
instruction is handled the same way.
Any hints are much appreciated.
--
Sean D'Epagnier
13 matches
Mail list logo