From: Nathan Binkert Date: Fri, 2 Jul 2004 20:40:23 +0000 (-0400) Subject: Fix byteswap on LP64 (amd64) X-Git-Tag: m5_1.0_tutorial~272 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e2c62a13dd5d81a1b5f6443b994b434c92a81d87;p=gem5.git Fix byteswap on LP64 (amd64) kern/linux/linux_system.cc: Formatting sim/host.hh: When we say ULL and UL we really just want a 64-bit value, not necessarily a long long, so cast the integer to (u)int64_t this fixes a problem with byte swapping. --HG-- extra : convert_revision : ad25ace5a7b92a7c928f2d52e531193c91f3f8c8 --- diff --git a/kern/linux/linux_system.cc b/kern/linux/linux_system.cc index e4405b2e5..70f5fb783 100644 --- a/kern/linux/linux_system.cc +++ b/kern/linux/linux_system.cc @@ -172,16 +172,19 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param, /** - * Set the hardware reset parameter block system type and revision information - * to Tsunami. + * Set the hardware reset parameter block system type and revision + * information to Tsunami. */ if (consoleSymtab->findAddress("xxm_rpb", addr)) { Addr paddr = vtophys(physmem, addr); char *hwprb = (char *)physmem->dma_addr(paddr, sizeof(uint64_t)); if (hwprb) { - *(uint64_t*)(hwprb+0x50) = htoa(ULL(34)); // Tsunami - *(uint64_t*)(hwprb+0x58) = htoa(ULL(1)<<10); // Plain DP264 + // Tsunami + *(uint64_t*)(hwprb + 0x50) = htoa(ULL(34)); + + // Plain DP264 + *(uint64_t*)(hwprb + 0x58) = htoa(ULL(1) << 10); } else panic("could not translate hwprb addr to set system type/variation\n"); diff --git a/sim/host.hh b/sim/host.hh index 489c4e042..9114cc4b6 100644 --- a/sim/host.hh +++ b/sim/host.hh @@ -38,9 +38,9 @@ #include /** uint64_t constant */ -#define ULL(N) N##ULL +#define ULL(N) ((uint64_t)N##ULL) /** int64_t constant */ -#define LL(N) N##LL +#define LL(N) (((int64_t)N##LL) /** Statistics counter type. Not much excuse for not using a 64-bit * integer here, but if you're desperate and only run short