From 33b5b3edcfd8e5a2c0349c60be2bef6da08d1e33 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 15 May 2012 10:03:30 -0700 Subject: [PATCH] librace: actually compute the loads and stores We need to perform the actual load or store within our race detection library, since the model checker totally takes over the operation. --- librace.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/librace.cc b/librace.cc index 42ed9c1..fa9a110 100644 --- a/librace.cc +++ b/librace.cc @@ -7,43 +7,47 @@ void store_8(void *addr, uint8_t val) { DEBUG("addr = %p, val = %" PRIu8 "\n", addr, val); + (*(uint8_t *)addr) = val; } void store_16(void *addr, uint16_t val) { DEBUG("addr = %p, val = %" PRIu16 "\n", addr, val); + (*(uint16_t *)addr) = val; } void store_32(void *addr, uint32_t val) { DEBUG("addr = %p, val = %" PRIu32 "\n", addr, val); + (*(uint32_t *)addr) = val; } void store_64(void *addr, uint64_t val) { DEBUG("addr = %p, val = %" PRIu64 "\n", addr, val); + (*(uint64_t *)addr) = val; } uint8_t load_8(void *addr) { DEBUG("addr = %p\n", addr); - return 0; + return *((uint8_t *)addr); } uint16_t load_16(void *addr) { DEBUG("addr = %p\n", addr); - return 0; + return *((uint16_t *)addr); } uint32_t load_32(void *addr) { DEBUG("addr = %p\n", addr); - return 0; + return *((uint32_t *)addr); } uint64_t load_64(void *addr) { DEBUG("addr = %p\n", addr); - return 0; + return *((uint64_t *)addr); } -- 2.34.1