Thanks Andrew. One more question, where do I find those .md files? I searched for them but I couldn't find them in my GCC installation directory. Regards, On 6/14/07, Andrew Haley <aph-gcc@xxxxxxxxxxxxxxxxxxx> wrote:
Mohamed Bamakhrama writes: > I have two questions related to the modifiers that can be used with > operands in inline assembly. > 1) What does the 'z' mean when added to the operand modifier (e.g. %z0)? From i386.md: ;; The special asm out single letter directives following a '%' are: ;; 'z' mov%z1 would be movl, movw, or movb depending on the mode of ;; operands[1]. ;; 'L' Print the opcode suffix for a 32-bit integer opcode. ;; 'W' Print the opcode suffix for a 16-bit integer opcode. ;; 'B' Print the opcode suffix for an 8-bit integer opcode. ;; 'Q' Print the opcode suffix for a 64-bit float opcode. ;; 'S' Print the opcode suffix for a 32-bit float opcode. ;; 'T' Print the opcode suffix for an 80-bit extended real XFmode float opcode. ;; 'J' Print the appropriate jump operand. ;; > 2) In the Input operands list, what is the meaning of 'J' (e.g. ... : > .... : "Jr" (0) )? See 14.8, Register Classes, in the gcc internals manual. The machine-dependent operand constraint letters (`I', `J', `K', ... `P') specify particular ranges of integer values. Also, see constraints.md: (define_constraint "J" "Integer constant in the range 0 ... 63, for 64-bit shifts." (and (match_code "const_int") (match_test "IN_RANGE (ival, 0, 63)"))) Andrew.
-- Mohamed Ahmed Bamakhrama Am Schaeferanger 15, room 035 85764 Oberschleissheim, Germany Email: bamakhra@xxxxxxxxxx Web: http://home.cs.tum.edu/~bamakhra/ Mobile: +49-160-9349-2711