From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Martin v. Loewis" To: yz@mailhost.telecruz.com Cc: help-gcc@gnu.org Subject: Re: GCC ASM(): Urgent! Date: Sat, 01 Apr 2000 00:00:00 -0000 Message-ID: <200003010850.JAA00667@loewis.home.cs.tu-berlin.de> References: <38BC7BDD.8C3DFF6C@telecruz.com> X-SW-Source: 2000-q1/msg00310.html Message-ID: <20000401000000.j6A7P-FHwmYZ88x61F0fnk9wxm2eXTkOu4DmGs0vvKU@z> > 1. What does .frame,.mask and .fmask means? I don't know anything about MIPS assembly, but looking at config/mips/mips.c, it appears that .frame defines how the stack frame is organized, with the parameters , .mask and .fmask describe what registers are saved: .mask , .fmask , > 2. Which registers are protected? Which registers I can use in my ASM() > routine? I can't answer this question. > 3. How to support Mips R3900 instruction like MULT rd,rs,rt? According to mips.h and mips.md, this is generated when /* Generate three-operand multiply instructions for both SImode and DImode. */ #define GENERATE_MULT3 (TARGET_MIPS3900 \ && !TARGET_MIPS16) So it should be should be used if not on a 16bit target. > 4. In GCC book within a macro "\" gives operator value, but the example > gives compile error: > .macro mname rd > .word \ rd > .endm Again, I don't know. > 5. How to debug and trace in the asm() instructions in a .C file? What exactly do you mean by trace? Please use the option --save-temps; this will produce a .s file, which contains the generated assembler code for inspection. Hope this helps, Martin