This is the mail archive of the
mailing list for the binutils project.
Macro expansion on MIPS
- From: "Smets, Jan (Jan)" <jan dot smets at alcatel-lucent dot com>
- To: "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Wed, 5 Oct 2011 01:33:26 +0200
- Subject: Macro expansion on MIPS
Is there a way to disable macro expansion on MIPS? More specific the replacement of 64bit instructions into two 32bit ones.
I'm using the O32 ABI, and I have code that uses some (inline) assembly with 64bit instructions. We can not easily switch to N32. (Long-term project)
For example, sd $a0, 0($sp) gets replaced by sw a0,0(sp) + sw a1,4(sp).
The assembler only generates a warning when the maco expands in a branch delay slot. When .set noreorder + .set nomacro are used, the assembler prints a warnings for every 'replacement'.
My code base is -very- large, so I can not easily add 'set .mips3' to every assembly block there is. Is there an easy way to find all places where this expansion is happening, ie, turn on 'nomacro'.
Or, is there something wrong with my new toolchain? (I'm trying to migrate from gcc34/binutils2.16.1 to gcc46/binutils2.21.52)
Are there any other options I missed ?