summaryrefslogtreecommitdiff
path: root/src/arch/arm/linux/process.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-06-09 23:41:35 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-06-09 23:41:35 -0700
commitc913c64be22f0b91552fdebb16b1505591a32c64 (patch)
tree74905e26e3104edabf43ea886add741ca20c4140 /src/arch/arm/linux/process.cc
parent3ff1e922c22dcc68274b16fcce080cd69b69b47b (diff)
downloadgem5-c913c64be22f0b91552fdebb16b1505591a32c64.tar.xz
ARM: Add a memory_barrier function to the "comm page".
This function doesn't actually provide a memory barrier (I don't think they're implemented) and instead just returns.
Diffstat (limited to 'src/arch/arm/linux/process.cc')
-rw-r--r--src/arch/arm/linux/process.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/arm/linux/process.cc b/src/arch/arm/linux/process.cc
index bc6388b73..a36d1fd8f 100644
--- a/src/arch/arm/linux/process.cc
+++ b/src/arch/arm/linux/process.cc
@@ -482,6 +482,14 @@ ArmLinuxProcess::startup()
swiNeg1, sizeof(swiNeg1));
}
+ // We don't have barriers, so just return.
+ uint8_t memory_barrier[] =
+ {
+ 0x0e, 0xf0, 0xa0, 0xe1 //usr_ret lr
+ };
+ tc->getMemPort()->writeBlob(commPage + 0x0fa0, memory_barrier,
+ sizeof(memory_barrier));
+
// This -should- be atomic, but I don't think all the support that we'd
// need is implemented. There should also be memory barriers around it.
uint8_t cmpxchg[] =