This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

adding a new register type to i386.h, and add spill/fill support


Hello all,

This is my first post! I'm already familiar with
adding new intrinsics, and am familiar with several
files:
rtl.def - added new rtl types for new instructions
simplify-rtx.c - return 0 in the simplify binary
                 and simplify ternary operations for
                 instructions with new rtl types
i386.c - define new built-ins, expand new built-ins
i386.h - added a new reg-class, defined new
         IX86_BUILTIN_* global defines
i386.md - The lisp-type code that adds the new
          intrinsic

I'm using GCC 3.3.4, but I doubt this will have
consequence for what we're trying to accomplish.

What I need to do now is define a new register type,
and take it through the whole prcess, just like an xmm
register would (spilling, reload.c, recog.c, etc., the
unchartered territory).

I've already added the new type to i386.h, however, I
think I'm missing something in the #define
REG_CLASS_CONTENTS section. Could anyone point me to
more documentation about what each bit means? We need
to add a new register type, and extend the # of
existing registers. Extending the # of a register
seems easy, but it's unclear to me if it has been done
right since I don't know what each bit set in the
REG_CLASS_CONTENTS define is.

>From then the next steps would be adding full support
to incorporate using the new type in intrinsics, etc.

Any help would be appreciated tons!
Tyler


	
		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]