I've been doing some work with the output of the OpenCL compiler for a project and am currently looking for the raw ISA bytecode output within the resulting binary. I've deduced the output of the OpenCL compiler looks something like this (with most sections omitted for brevity):
- .amdil: Text IL
- .rodata: text runtime information
- .text: AMD runtime elf
- .text: IL bytecode
- .text: Data containing ISA bytecode
The trouble is, I don't trust that second .text section in the AMD runtime elf as being strictly ISA bytecode. It generally looks like three different data sections, separated by chunks of zeros (in the sample programs I am compiling). I was wondering if someone could give me a bit of insight into the structure of this section. The r600 ISA spec is public, so I could try to decompile it by hand to see where it starts making sense, but I'd like to avoid the tedium if at all possible.