🐛 Fix in exception not taken for loads

This commit is contained in:
Florian Zaruba 2017-06-26 18:16:05 +02:00
parent 4b97fcb76d
commit 570e3c194b
3 changed files with 26 additions and 22 deletions

View file

@ -44,7 +44,7 @@ riscv-tests = rv64ui-p-add rv64ui-p-addi rv64ui-p-slli rv64ui-p-addiw rv64ui-p-a
rv64mi-p-ma_addr rv64mi-p-ma_fetch rv64mi-p-sbreak rv64mi-p-scall \
rv64si-p-csr rv64si-p-ma_fetch rv64si-p-scall rv64si-p-wfi rv64si-p-sbreak \
rv64si-p-dirty rv64uc-p-rvc \
rv64ui-v-sll
rv64ui-v-sll rv64ui-v-srl rv64ui-v-sd
riscv-test = rv64ui-p-add

View file

@ -43,32 +43,32 @@ Check out the [contribution guide](CONTRIBUTING.md)
## User Mode Integer Tests
| **Test Name** | **P/V** | **Test Name** | **P/V** | **Test Name** | **P/V** |
|---------------|-----------------------------------------|---------------|----------------------------------------|---------------|-----------------------------------------|
| add | :white_check_mark: :white_large_square: | lb | :white_check_mark::white_large_square: | sll | :white_check_mark: :white_check_mark: |
| addi | :white_check_mark: :white_large_square: | lbu | :white_check_mark::white_large_square: | slli | :white_check_mark: :white_large_square: |
| addiw | :white_check_mark: :white_large_square: | ld | :white_check_mark::white_large_square: | slliw | :white_check_mark: :white_large_square: |
| addw | :white_check_mark: :white_large_square: | lh | :white_check_mark::white_large_square: | sllw | :white_check_mark: :white_large_square: |
| and | :white_check_mark: :white_large_square: | lhu | :white_check_mark::white_large_square: | slt | :white_check_mark: :white_large_square: |
| andi | :white_check_mark: :white_large_square: | lui | :white_check_mark::white_large_square: | slti | :white_check_mark: :white_large_square: |
| auipc | :white_check_mark: :white_large_square: | lw | :white_check_mark::white_large_square: | sltiu | :white_check_mark: :white_large_square: |
| beq | :white_check_mark: :white_large_square: | lwu | :white_check_mark::white_large_square: | sltu | :white_check_mark: :white_large_square: |
| bge | :white_check_mark: :white_large_square: | or | :white_check_mark::white_large_square: | sra | :white_check_mark: :white_large_square: |
| bgeu | :white_check_mark: :white_large_square: | ori | :white_check_mark::white_large_square: | srai | :white_check_mark: :white_large_square: |
| blt | :white_check_mark: :white_large_square: | sb | :white_check_mark::white_large_square: | sraiw | :white_check_mark: :white_large_square: |
| bltu | :white_check_mark: :white_large_square: | sd | :white_check_mark::white_check_mark: | sraw | :white_check_mark: :white_large_square: |
| bne | :white_check_mark: :white_large_square: | sh | :white_check_mark::white_large_square: | srl | :white_check_mark: :white_check_mark: |
| sub | :white_check_mark: :white_large_square: | simple | :white_check_mark::white_large_square: | srli | :white_check_mark: :white_large_square: |
| subw | :white_check_mark: :white_large_square: | jal | :white_check_mark::white_large_square: | srliw | :white_check_mark: :white_large_square: |
| sw | :white_check_mark: :white_large_square: | jalr | :white_check_mark::white_large_square: | srlw | :white_check_mark: :white_large_square: |
| xor | :white_check_mark: :white_large_square: | | | | |
| xori | :white_check_mark: :white_large_square: | | | | |
| **Test Name** | **P/V** | **Test Name** | **P/V** | **Test Name** | **P/V** |
|---------------|-----------------------------------------|---------------|-----------------------------------------|---------------|-----------------------------------------|
| add | :white_check_mark: :white_large_square: | lb | :white_check_mark: :white_large_square: | sll | :white_check_mark: :white_check_mark: |
| addi | :white_check_mark: :white_large_square: | lbu | :white_check_mark: :white_large_square: | slli | :white_check_mark: :white_large_square: |
| addiw | :white_check_mark: :white_large_square: | ld | :white_check_mark: :white_check_mark: | slliw | :white_check_mark: :white_large_square: |
| addw | :white_check_mark: :white_large_square: | lh | :white_check_mark: :white_large_square: | sllw | :white_check_mark: :white_large_square: |
| and | :white_check_mark: :white_large_square: | lhu | :white_check_mark: :white_large_square: | slt | :white_check_mark: :white_large_square: |
| andi | :white_check_mark: :white_large_square: | lui | :white_check_mark: :white_large_square: | slti | :white_check_mark: :white_large_square: |
| auipc | :white_check_mark: :white_large_square: | lw | :white_check_mark: :white_large_square: | sltiu | :white_check_mark: :white_large_square: |
| beq | :white_check_mark: :white_large_square: | lwu | :white_check_mark: :white_large_square: | sltu | :white_check_mark: :white_large_square: |
| bge | :white_check_mark: :white_large_square: | or | :white_check_mark: :white_large_square: | sra | :white_check_mark: :white_large_square: |
| bgeu | :white_check_mark: :white_large_square: | ori | :white_check_mark: :white_large_square: | srai | :white_check_mark: :white_large_square: |
| blt | :white_check_mark: :white_large_square: | sb | :white_check_mark: :white_large_square: | sraiw | :white_check_mark: :white_large_square: |
| bltu | :white_check_mark: :white_large_square: | sd | :white_check_mark: :white_check_mark: | sraw | :white_check_mark: :white_large_square: |
| bne | :white_check_mark: :white_large_square: | sh | :white_check_mark: :white_large_square: | srl | :white_check_mark: :white_check_mark: |
| sub | :white_check_mark: :white_large_square: | simple | :white_check_mark: :white_large_square: | srli | :white_check_mark: :white_large_square: |
| subw | :white_check_mark: :white_large_square: | jal | :white_check_mark: :white_large_square: | srliw | :white_check_mark: :white_large_square: |
| sw | :white_check_mark: :white_large_square: | jalr | :white_check_mark: :white_large_square: | srlw | :white_check_mark: :white_large_square: |
| xor | :white_check_mark: :white_large_square: | | | | |
| xori | :white_check_mark: :white_large_square: | | | | |
## Compressed Instruction Tests
| **Test Name** | **P/V** | **Test Name** | **P/V** | **Test Name** | **P/V** |
|---------------|----------------------------------------|---------------|---------|---------------|---------|
| rvc | :white_check_mark::white_large_square: | | | | |
| rvc | :white_check_mark: :white_large_square: | | | | |
## Machine Mode Tests

View file

@ -248,6 +248,10 @@ module load_unit (
if (ex_i.valid)
valid_o = 1'b1;
end
// an exception occurred during translation
if (CS == WAIT_TRANSLATION && ex_i.valid) begin
valid_o = 1'b1;
end
end