OpenCores

* Amber ARM-compatible core

Issue List
Translate flag on LDR and STR ignored #13
Closed sleary opened this issue over 9 years ago
sleary commented over 9 years ago

The following instruction

STRT R1,R9,#0

Is excecuted as though it was

STR R1,R9,#0

Similarly for LDRT.

I would expect this to drop the CPU core into User mode for the duration of the instruction which doesn't happen. I'm guessing this is because the core doesnt have a wishbone compliant way of announcing what mode the CPU is in during a memory cycle. This should also be added.

This prevents Amber from passing hardware tests in some systems. I'm guessing you wont fix this but there should be a record of it.

csantifort commented over 9 years ago

LDRT and STRT are part of the ARM v4 ISR. Amber supports the v2a ISR.

csantifort closed this over 9 years ago
csantifort commented over 9 years ago

mean ISA, not ISR

sleary commented over 9 years ago

???

They are in the ARM 1 instruction set manual.

http://www.chiark.greenend.org.uk/~theom/riscos/docs/ARM3-datasheet_ARM-Family-Data-Manual-VLSI.pdf

See pages 3-25 3-27.

The instructions are used in RISC OS 0.1 right up to modern 5.20.

sleary commented over 9 years ago

The instruction is defined at the top of page 3-27.

The !ObjAsm & AsAsm assemblers will compile the instruction opcode for v2a.

sleary commented over 9 years ago

Sorry that was the ARM 3 link. For the ARM2 its on page 2-38 and 2-39. ISBN 0-13-781618-9

http://maben.homeip.net/static/S100/acorn/hardware/ARM%20Family%20Data%20manual%201990.pdf

sleary commented over 9 years ago

Conor, if you arent going to fix any bugs on this CPU core i'll be forced to fork it.

csantifort commented over 9 years ago

OK to be precise address translation is not part of the CPU core in v2a. It is an optional external component which is not supported in the Amber project. In the v4 ISA there is an MMU in the core which handles the address translation, making the function a requirement to any complete implementation.

Some general comments about the tone of this bug report. This is an open source project. The concept of open source is that users contribute back to the code base to fix bugs and grow its usefulness. It is not a commercial product with paid support. Bug reports demanding fixes or else are unlikely to be successful.

Users are free to fork the project, as long as they follow the open source license terms.

The best way to submit a bug report is to create a complete assembly test in the same style as the tests in the hw/tests directory, which fails because of the bug, and only for that reason. That way other users can easily reproduce the bug, fix the issue and submit a patch.

sleary commented over 9 years ago

Fine Conor,

I wont contribute any more feedback to you as it is clearly not welcome. Let me know when you get over your own ego and i'll help you again.


Assignee
No one
Labels
Bug