> And note how the u32int is actually converted to a pointer to a long, > which is 64 bits. I put a panic in there on sizeof(*addr) != > sizeof(*arg) and bang! away we go. > > So it's a 32/64 bit cleanliness problem. And it's not just for go, > it's for everything. > > This is a huge problem as pentium is little-endian and you're going to > end up trashing data. Bad. > > I will try to put a fix in now. We just need to be a little cleaner > about realizing that the syscall interface is always 32 bits, even > when 9vx is built as 64 bits. This is pretty much the TOS thing all > over again.
the plan 9 core needs to religiously use uintptr and not long. long is always wrong for these things. - erik
