GCC backend development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm trying to write a GCC backend for a custom RISC machine and
suddenly I seems to have a problem while compiling some C++ classes.
After changing some code from all the implementation in the header
file to declaration of the class in the header file and implementation
in the .cpp file, the compiler started asking me for a
STATIC_CHAIN_REGNUM. I'm a bit unfamiliar with this concept and google
didn't really help (altho I found out there's a band called Static
Chain...) so I was wondering if there are some links/ docs that
explain what this does.

Anyway, after declaring the macro and adding/ fixing some rtx
templates in order to load a label into a register, now, when
compiling the cpp file, I get some strange calls to some functions
I've never seen before: __gxx_personality_sj0, _Unwind_SjLj_Resume,
_Unwind_SjLj_Unregister. I'm pretty sure these are functions defined
somewhere in libstdc++ but I have no idea what they do and I don't
know why they suddenly appeared now, after I split the code in
header/implementation.

At the same time, some asm inlines which worked fine before started
givimg me "error: ‘asm’ operand requires impossible reload", but
however still work, as in they generate valid asm inline code.

So, to summarize:
   1. what exactly is a static chain?
   2. why is that after splitting the code, calls to stdlibc++
suddenly appear, and is there a way to keep them from appearing?
   3. is the asm error a fatal error or can I live with it/ fix it?

Thank you in advance,
Radu



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux