Is that code not in all of the other completeAcc ISA functions? On Sat, Nov 8, 2008 at 10:20 PM, Gabe Black <[EMAIL PROTECTED]> wrote: > I'm sure we could. This is useful anywhere you need to get an endian > converted value out of a packet without knowing the size ahead of time. > Does that happen often? I think this was the first time I'd run into it, > but I haven't messed with a lot of the device stuff. > > Gabe > > Steve Reinhardt wrote: >> Just looking at this code, can we put a more generic version of this >> somewhere, like as a Packet method? I don't know how many other >> places already do this, but other than the dataSize value none of that >> code looks x86-specific, and I'm guessing there are other places that >> do this kind of thing. It might be usable to clean up some of the >> device code. >> >> Steve >> >> On Sat, Nov 8, 2008 at 12:08 AM, <[EMAIL PROTECTED]> wrote: >> >>> # HG changeset patch >>> # User Gabe Black <[EMAIL PROTECTED]> >>> # Date 1226042030 28800 >>> # Node ID 2e61b60e6614e026ba055946a45c5f577d8d8ff8 >>> # Parent 94ef4905a939b782105ce0ebb3c063451744fb3d >>> X86: Fix completeAcc get call. >>> >>> diff --git a/src/arch/x86/insts/microldstop.hh >>> b/src/arch/x86/insts/microldstop.hh >>> --- a/src/arch/x86/insts/microldstop.hh >>> +++ b/src/arch/x86/insts/microldstop.hh >>> @@ -59,6 +59,7 @@ >>> #define __ARCH_X86_INSTS_MICROLDSTOP_HH__ >>> >>> #include "arch/x86/insts/microop.hh" >>> +#include "mem/packet.hh" >>> >>> namespace X86ISA >>> { >>> @@ -149,6 +150,25 @@ >>> } >>> return fault; >>> } >>> + >>> + uint64_t >>> + get(PacketPtr pkt) const >>> + { >>> + switch(dataSize) >>> + { >>> + case 1: >>> + return pkt->get<uint8_t>(); >>> + case 2: >>> + return pkt->get<uint16_t>(); >>> + case 4: >>> + return pkt->get<uint32_t>(); >>> + case 8: >>> + return pkt->get<uint64_t>(); >>> + default: >>> + panic("Bad operand size %d for read at %#x.\n", >>> + dataSize, pkt->getAddr()); >>> + } >>> + } >>> }; >>> } >>> >>> diff --git a/src/arch/x86/isa/microops/ldstop.isa >>> b/src/arch/x86/isa/microops/ldstop.isa >>> --- a/src/arch/x86/isa/microops/ldstop.isa >>> +++ b/src/arch/x86/isa/microops/ldstop.isa >>> @@ -194,7 +194,7 @@ >>> %(op_decl)s; >>> %(op_rd)s; >>> >>> - Mem = pkt->get<typeof(Mem)>(); >>> + Mem = get(pkt); >>> >>> %(code)s; >>> >>> _______________________________________________ >>> m5-dev mailing list >>> m5-dev@m5sim.org >>> http://m5sim.org/mailman/listinfo/m5-dev >>> >>> >> _______________________________________________ >> m5-dev mailing list >> m5-dev@m5sim.org >> http://m5sim.org/mailman/listinfo/m5-dev >> > > _______________________________________________ > m5-dev mailing list > m5-dev@m5sim.org > http://m5sim.org/mailman/listinfo/m5-dev >
-- ---------- Korey L Sewell Graduate Student - PhD Candidate Computer Science & Engineering University of Michigan _______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev