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]

Re: does gcc support multiple sizes, or not?


>   vects[A0_VEC] = __builtin_pointer32 (timer_a0_handler);

Note that the builtin would be needed for run-time conversion between
pointers of different sizes, i.e. casts.  Why?  Well, gcc doesn't
"just know" how to do such conversions.  For example, TPF has a 31 bit
address.  To convert it to 64, you clear the MSB and zero extend.  To
convert back, you truncate and set the MSB (if you clear the MSB, you
end up with a 24 bit address, it's a "size flag").  In theory, 64 bit
addresses should always have the LSB set too.

But a compile-time assigment of a symbol to a pointer should "just
work" as long as the assembler supports it (I fixed that bug some
months ago).


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