提交 3f14e1d0 编写于 作者: W wangkaifan

difftest: dismiss lr/sc pre-check

上级 7e0982a4
...@@ -424,7 +424,7 @@ inline void Emulator::single_cycle() { ...@@ -424,7 +424,7 @@ inline void Emulator::single_cycle() {
inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t atomicMask, uint8_t atomicFuop, uint64_t atomicOut) { inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t atomicMask, uint8_t atomicFuop, uint64_t atomicOut) {
if (!(atomicMask == 0xf || atomicMask == 0xf0 || atomicMask == 0xff)) { if (!(atomicMask == 0xf || atomicMask == 0xf0 || atomicMask == 0xff)) {
printf("Mask fucked: %lx\n", atomicMask); printf("Mask f**ked: %lx\n", atomicMask);
} }
assert(atomicMask == 0xf || atomicMask == 0xf0 || atomicMask == 0xff); assert(atomicMask == 0xf || atomicMask == 0xf0 || atomicMask == 0xff);
...@@ -434,8 +434,8 @@ inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t at ...@@ -434,8 +434,8 @@ inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t at
uint64_t ret; uint64_t ret;
uint64_t mem; uint64_t mem;
read_goldenmem(atomicAddr, &mem, 8); read_goldenmem(atomicAddr, &mem, 8);
if (mem != t && atomicFuop != 007) { if (mem != t && atomicFuop != 007 && atomicFuop != 003) {
printf("Atomic instr fucked up, mem: 0x%lx, t: 0x%lx, op: 0x%x, addr: 0x%lx\n", mem, t, atomicFuop, atomicAddr); printf("Atomic instr f**ked up, mem: 0x%lx, t: 0x%lx, op: 0x%x, addr: 0x%lx\n", mem, t, atomicFuop, atomicAddr);
// assert(0); // assert(0);
} }
switch (atomicFuop) { switch (atomicFuop) {
...@@ -469,8 +469,8 @@ inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t at ...@@ -469,8 +469,8 @@ inline void handle_atomic(uint64_t atomicAddr, uint64_t* atomicData, uint64_t at
else else
mem = (uint32_t)(mem_temp >> 32); mem = (uint32_t)(mem_temp >> 32);
if (mem != t && atomicFuop != 006) { if (mem != t && atomicFuop != 006 && atomicFuop != 002) {
printf("Atomic instr fucked up, rawmem: 0x%lx mem: 0x%x, t: 0x%x, op: 0x%x, addr: 0x%lx\n", mem_temp, mem, t, atomicFuop, atomicAddr); printf("Atomic instr f**ked up, rawmem: 0x%lx mem: 0x%x, t: 0x%x, op: 0x%x, addr: 0x%lx\n", mem_temp, mem, t, atomicFuop, atomicAddr);
// assert(0); // assert(0);
} }
switch (atomicFuop) { switch (atomicFuop) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册