Index: src/a64/simulator-a64.cc |
diff --git a/src/a64/simulator-a64.cc b/src/a64/simulator-a64.cc |
index 014b71477def993b76a8d1c6d953b8c0b67403fe..a2867a033f60d861c1082afccbc57f538930487e 100644 |
--- a/src/a64/simulator-a64.cc |
+++ b/src/a64/simulator-a64.cc |
@@ -1222,7 +1222,6 @@ void Simulator::LoadStoreHelper(Instruction* instr, |
unsigned srcdst = instr->Rt(); |
unsigned addr_reg = instr->Rn(); |
uint8_t* address = LoadStoreAddress(addr_reg, offset, addrmode); |
- int num_bytes = 1 << instr->SizeLS(); |
uint8_t* stack = NULL; |
// Handle the writeback for stores before the store. On a CPU the writeback |
@@ -1242,14 +1241,14 @@ void Simulator::LoadStoreHelper(Instruction* instr, |
LoadStoreOp op = static_cast<LoadStoreOp>(instr->Mask(LoadStoreOpMask)); |
switch (op) { |
- case LDRB_w: |
- case LDRH_w: |
- case LDR_w: |
- case LDR_x: set_xreg(srcdst, MemoryRead(address, num_bytes)); break; |
- case STRB_w: |
- case STRH_w: |
- case STR_w: |
- case STR_x: MemoryWrite(address, xreg(srcdst), num_bytes); break; |
+ case LDRB_w: set_xreg(srcdst, MemoryRead8(address)); break; |
+ case LDRH_w: set_xreg(srcdst, MemoryRead16(address)); break; |
+ case LDR_w: set_xreg(srcdst, MemoryRead32(address)); break; |
+ case LDR_x: set_xreg(srcdst, MemoryRead64(address)); break; |
+ case STRB_w: MemoryWrite8(address, reg<uint8_t>(srcdst)); break; |
+ case STRH_w: MemoryWrite16(address, reg<uint16_t>(srcdst)); break; |
+ case STR_w: MemoryWrite32(address, reg<uint32_t>(srcdst)); break; |
+ case STR_x: MemoryWrite64(address, reg<uint64_t>(srcdst)); break; |
case LDRSB_w: { |
set_wreg(srcdst, ExtendValue(kWRegSize, MemoryRead8(address), SXTB)); |
break; |
@@ -1479,31 +1478,11 @@ uint64_t Simulator::MemoryRead(uint8_t* address, unsigned num_bytes) { |
} |
-uint8_t Simulator::MemoryRead8(uint8_t* address) { |
- return MemoryRead(address, sizeof(uint8_t)); |
-} |
- |
- |
-uint16_t Simulator::MemoryRead16(uint8_t* address) { |
- return MemoryRead(address, sizeof(uint16_t)); |
-} |
- |
- |
-uint32_t Simulator::MemoryRead32(uint8_t* address) { |
- return MemoryRead(address, sizeof(uint32_t)); |
-} |
- |
- |
float Simulator::MemoryReadFP32(uint8_t* address) { |
return rawbits_to_float(MemoryRead32(address)); |
} |
-uint64_t Simulator::MemoryRead64(uint8_t* address) { |
- return MemoryRead(address, sizeof(uint64_t)); |
-} |
- |
- |
double Simulator::MemoryReadFP64(uint8_t* address) { |
return rawbits_to_double(MemoryRead64(address)); |
} |
@@ -1520,21 +1499,11 @@ void Simulator::MemoryWrite(uint8_t* address, |
} |
-void Simulator::MemoryWrite32(uint8_t* address, uint32_t value) { |
- MemoryWrite(address, value, sizeof(uint32_t)); |
-} |
- |
- |
void Simulator::MemoryWriteFP32(uint8_t* address, float value) { |
MemoryWrite32(address, float_to_rawbits(value)); |
} |
-void Simulator::MemoryWrite64(uint8_t* address, uint64_t value) { |
- MemoryWrite(address, value, sizeof(uint64_t)); |
-} |
- |
- |
void Simulator::MemoryWriteFP64(uint8_t* address, double value) { |
MemoryWrite64(address, double_to_rawbits(value)); |
} |