packet_access.hh (3348:11f6ef023158) packet_access.hh (4040:eb894f3fc168)
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 16 unchanged lines hidden (view full) ---

25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * Authors: Ali Saidi
29 * Nathan Binkert
30 */
31
32#include "arch/isa_traits.hh"
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 16 unchanged lines hidden (view full) ---

25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * Authors: Ali Saidi
29 * Nathan Binkert
30 */
31
32#include "arch/isa_traits.hh"
33#include "base/bigint.hh"
33#include "mem/packet.hh"
34#include "sim/byteswap.hh"
35
36#ifndef __MEM_PACKET_ACCESS_HH__
37#define __MEM_PACKET_ACCESS_HH__
38// The memory system needs to have an endianness. This is the easiest
39// way to deal with it for now. At some point, we will have to remove
40// these functions and make the users do their own byte swapping since
41// the memory system does not in fact have an endianness.
42
34#include "mem/packet.hh"
35#include "sim/byteswap.hh"
36
37#ifndef __MEM_PACKET_ACCESS_HH__
38#define __MEM_PACKET_ACCESS_HH__
39// The memory system needs to have an endianness. This is the easiest
40// way to deal with it for now. At some point, we will have to remove
41// these functions and make the users do their own byte swapping since
42// the memory system does not in fact have an endianness.
43
44template<>
45inline Twin64_t
46Packet::get()
47{
48 Twin64_t d;
49 assert(staticData || dynamicData);
50 assert(sizeof(Twin64_t) <= size);
51 d.a = TheISA::gtoh(*(uint64_t*)data);
52 d.b = TheISA::gtoh(*((uint64_t*)data + 1));
53 return d;
54}
55
56
43/** return the value of what is pointed to in the packet. */
44template <typename T>
45inline T
46Packet::get()
47{
48 assert(staticData || dynamicData);
49 assert(sizeof(T) <= size);
50 return TheISA::gtoh(*(T*)data);

--- 12 unchanged lines hidden ---
57/** return the value of what is pointed to in the packet. */
58template <typename T>
59inline T
60Packet::get()
61{
62 assert(staticData || dynamicData);
63 assert(sizeof(T) <= size);
64 return TheISA::gtoh(*(T*)data);

--- 12 unchanged lines hidden ---