Mohamed Bamakhrama writes: > 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. Please don't top-post. They're in the gcc source, in gcc/config/i386/ Andrew. > 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.