After three months I still have the same problem...
Suppose I want to generate my own opcode, let's say 0xC4000000,
inside a C program. Suppose this value is NOT a constant in
the macro I want to write since it will contain three
variable fields for the rd,rs,rt registers, so I need to calculate
the opcode at least at compilation time (at runtime is NOT
required).
Daniel suggested using .word and writing the function by hand,
but which is the syntax I have to use?
#define myopcode(rs,rt,rd) { \
int opcode_number = 0xC4000000 | (rs<<21) | (rt<<16) | (rd<<11); \
char opcode_string[20]; \
sprintf(opcode_string, ".word 0x%X", opcode_number); \
asm(opcode_string); \
}