cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

sgratton
Adept I

Mem_export opcode for r7xx

r700-family ISA guide (rev 1.0) inconsistency

 

Hi there,

 

While trying to understand the CALImage binary format, I came across the following issue whilst looking at a MEM_EXPORT_WRITE for a 4870; page 9-25 says the instruction field should be CF_INST_MEM_EXPORT, opcode 58 (0x3a) whereas p 10-12 in the microcode description for the appropriate dword suggests the opcode should be 41 for the same instruction, and only in fact describes there being opcodes from 32-41 inclusive.

 

Looking inside the image with calImageWrite(), it actually has opcode 58 inside it.

 

Now apparently calclAssembleObject() never worked for 4870 class hardware; if it was converting text into opcode from the microcode format table all exports would have had 41 rather than 58 -- this could be the bug !

 

Note that the opcodes and indeed the microcode formats change slightly from generation to generation; I had to find an old r700isa.pdf to be able to look into this.  As the APP SDK does support older hardware too perhaps these older documents should still be listed on the documention page?

Best wishes,

Steven.

 

 

 

 

0 Likes
2 Replies

sgratton,
The assembler was only developed for the R6XX series of chips and was never updated for 7XX or later devices as it is not a supported path. So it is more than just a single opcode problem, anything new to R7XX won't work with the assembler.

Micah
0 Likes

Sgratton,
The documentation is incorrect in that it should be opcode 58, not 41. There was an issue where opcodes 41 through 57 are reserved and opcode 58 coincidently got numbered as 41.
0 Likes