Stefan Reinauer <[EMAIL PROTECTED]> writes: > * Eric W. Biederman <[EMAIL PROTECTED]> [030915 13:10]: > > Ron how so? If romcc compiles it should work. I don't have any > > excuse for romcc to behave different depending on what compiler > > compiles it. > > But there is a difference in the resulting romcc depending on whether > you compile it for AMD64 or IA32. I tracked it down to lines 211 and > 212: > /* Long on the destination platform */ > typedef unsigned long ulong_t; > typedef long long_t; > > The IA32 version of the size_of() function will return 4 when it gets a > pointer or a long, whereas the AMD64 version will return 8. > > The function transform_to_arch_instruction checks the result of > size_of() in the OP_COPY branch of the big case statement and fails with > an internal compiler error if the size is not 1, 2 or 4.
Ok. That looks like an easy mistake to make and it sounds reasonable that it exists. > Since IA32 code (including AMD64 special registers) is the only target > platform currently supported, it should be OK to change above typedefs > to 4 byte types. If this seems not appropriate it might make sense to > seperate the platform dependent code into several files and have an > additional target for AMD64 long mode. That is where I want to go eventually. For now which ever is most convenient. I have been doing my best to abstract things so I can add additional ports without too much trouble but I have not been worry about it very much. Eric _______________________________________________ Linuxbios mailing list [EMAIL PROTECTED] http://www.clustermatic.org/mailman/listinfo/linuxbios

