Eric Fisher <[EMAIL PROTECTED]> writes:

> Firstly, shall I support it in the machine.md file, or just leave it to 
> libgcc?
> Dose the libgcc support it if I don't implement in the machine.md file?

Yes, if you supply SImode operations, libgcc will give you some DImode
operations, and the others will be opencoded by the compiler.  For
example, addition is open coded, and multiplication is in libgcc.
Sometimes you can get more efficient code by putting DImode operations
in your MD file--e.g., if you have an add-with-carry instruction.

> Secondly, is the long long type equal to DImode in the 32bit machine?
> Such as adddi3, subdi3.

Normally, yes, though it is not a requirement.  You can control the
type "long long" by setting LONG_LONG_TYPE_SIZE in your CPU.h file.
The way to think about it is that "long long" is an integer type of a
certain size, typically 64 bits but it can be something else.  DImode
is always the internal representation of a 64-bit integer.  (Unless
your processor does not address memory in 8-bit units, which is very
unusual).

Ian

Reply via email to