gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > ARM946E-S Opcode map and Instruction Set

#33502 - boycottadvance - Tue Jan 04, 2005 5:14 pm

Hi,

I am looking for technical documents on the ARM946E-S processor (ARMv5tE Architecture) especially a complete and detailed instruction set with the opcode map.
ARM7TDMI was fairly well documented in comparison...

I can already emulate the ARM7 binary of you-know-what in BoycottDS but I need to implement the second processor before going further.

Happy reverse-engineering guys!


Last edited by boycottadvance on Tue Jan 04, 2005 6:15 pm; edited 1 time in total

#33503 - scknight - Tue Jan 04, 2005 5:43 pm

boycottadvance wrote:
Hi,

I am looking for technical documents on the ARM946E-S processor (ARMv5tE Architecture) especially a complete and detailed instruction set with the opcode map.
ARM7TDMI was fairly well documented in comparison...

I can already emulate the ARM7 binary of you-know-what in BoycottDS but I need to implement the second processor before going further.

Happy reverse-engineering guys!


You can request a free cd from Arm, that has all the information you would need.

http://www.arm.com/documentation/cd_request.html

#33504 - Normmatt - Tue Jan 04, 2005 5:53 pm

or just goto http://www.arm.com/documentation/ARMProcessor_Cores/index.html which has it up for download

#33505 - boycottadvance - Tue Jan 04, 2005 6:13 pm

maybe I am blind but I cannot find any document with a detailed opcode map or instruction set.
there are quick reference instruction sets, very tiny opcode maps but nothing like a big opcode map and instruction by instruction list with flags and timings...

I need accurate documentation if I want to decode opcodes and start to emulate things...

what documents are you using guys?

#33507 - Abcd1234 - Tue Jan 04, 2005 6:27 pm

Well, the introduction in the tech manual for the ARM946E-S (the CPU in the DS, AFAIR) states the following:

"The ARM946E-S is a synthesizable processor combining an ARM9E-S processor core with a configurable memory system. It is a member of the ARM9E family of high-performance, 32-bit system-on-chip processor solutions."

So, based on that, you should be able to use the technical manual for the ARM9E-S. And, sure enough, the ARM9E-S technical manual contains a full instruction set listing with cycle times, etc.

#33779 - biocomm - Sat Jan 08, 2005 11:26 pm

I think he is looking for the ARMv5TE reference material combined with the info you pointed him at. I do not think I had come across the ARMv5TE opcode breakdown on the internet, but it might be in the "ARM Architecture Reference" book on amazon.

#34279 - ickmonst - Mon Jan 17, 2005 1:30 am

So, it seems the architecture manual is not on arm's site. however, there is a copy available online if you search for it. Specifically, http://dsl.ee.unsw.edu.au/dsl-cdrom/reference/arm-architecture-reference.pdf is probably what you are looking for, boycottadvance. =)

#34323 - boycottadvance - Mon Jan 17, 2005 9:35 pm

Yes, the ARM Architecture Reference is not available from the ARM site and was the document I actually needed.
Thanks to all for your replies.

I can start working on ARM9 emulation now.

#34358 - [mRg] - Tue Jan 18, 2005 2:39 pm

A great book for the different types of architecture that ARM offers is:

ARM System-on-chip Architecture by Steve Furber

This covers the architectures you mention (v5TE) (.. as a side note its also a great book for learning assembler too I found very clear and concise).

The book makes mention that the 5TE is used mainly for systems which use signal processing and has signal processing instruction set extentions (The 'Q' flag added to bit 27 of the CPSR for example) and the extra SMLAxy / SMLAWy / SMULWy / SMLALxy / SMULxy / QADD / QSUB / QDADD / QDSUB instructions. The book also has format diagrams and example usage if that PDF above is a little dry :)

So in theory this chip set will also have the handy CLZ instruction.

Hope this is some use :)

[mRg]