diff options
Diffstat (limited to 'gcc_arm/LANGUAGES')
-rwxr-xr-x | gcc_arm/LANGUAGES | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/gcc_arm/LANGUAGES b/gcc_arm/LANGUAGES new file mode 100755 index 0000000..c3d4223 --- /dev/null +++ b/gcc_arm/LANGUAGES @@ -0,0 +1,91 @@ +Right now there is no documentation for the GCC tree -> rtl interfaces +(or more generally the interfaces for adding new languages). + +Such documentation would be of great benefit to the project. Until such +time as we can formally start documenting the interface this file will +serve as a repository for information on these interface and any incompatable +changes we've made. + +Aug 31, 1998: + The interface to HANDLE_PRAGMA has changed. It now takes three arguments. + The first two are pointers to functions that should be used to read characters + from the input stream, and to push them back into the input stream respectively. + The third argument is a pointer to a null terminate string which is the first + word after #pragma. The expression supplied by HANDLE_PRAGMA should return + non-zero if it parsed and implemented the pragma. Otherwise it should return + zero, and leave the input stream as it was before the expression was evaluated. + + A new back-end definable macro has been added: INSERT_ATTRIBUTES. This macro + allows backend to add attributes to decls as they are created. + +Jun 10, 1998: + The interface to lang_decode_option has changed. It now uses and argc/argv + interface to allow for options that use more than one input string. The new + declaration is: int lang_decode_option (int argc, char** argv). It now + returns the number of input strings processed, or 0 if the option is + unknown. + +Jun 7, 1998: + Front-ends must now define lang_init_options. It is safe for this + function to do nothing. See c-lang.c. + +Apr 21, 1998: + Front ends which link with c-common or other files from the C/C++ + front-ends may need to handle TI types. Look for references to + [unsigned]int_DI_type_node in your front end. If you have references + to these variables, you'll need up update the front end. + + To update the front end you must mirror all the code which currently + deals with intDI_type_node to also handle intTI_type_node. + + +Apr 7, 1998: + The interface between toplev.c and the language front ends for opening the + source file has changed: + + o init_lex() has been renamed to init_parse (char *filename) where filename + is the name of the source file. + o The code in toplev.c which opened the source file should be moved to + the new init_parse function. + o toplev.c now calls finish_parse() instead of closing the source file + using fclose(). This should now be done in finish_parse, if necessary. + +Apr 1, 1998: + Front-ends must now define lang_print_xnode. It is safe for this + function to do nothing. See c-lang.c. + +Feb 1, 1998: + + GCC used to store structure sizes & offsets to elements as bitsize + quantities. This causes problems because a structure can only be + (target memsize / 8) bytes long (this may effect arrays too). This + is particularly problematical on machines with small address spaces. + + So: + + All trees that represent sizes in bits should have a TREE_TYPE of + bitsizetype (rather than sizetype). + + Accordingly, when such values are computed / initialized, care has to + be takes to use / compute the proper type. + + When a size in bits is converted into a size in bytes, which is expressed + in trees, care should be taken to change the tree's type again to sizetype. + + We've updated C, C++, Fortran & Objective-C to work with the new + scheme. Other languages will need to be updated accordingly. + Contact amylaar@cygnus.com for additional information. + +?? 1997: + + In an effort to decrease cache thrashing and useless loads we've changed the + third argument to the DEFTREECODE macro to be a single char. This will + effect languages that defined their own tree codes (usually in a .def file). + + Old way: + + DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", "d", 0) + + New way: + + DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0) |