From: <aot...@us...> - 2005-07-18 00:18:31
|
Update of /cvsroot/gc-linux/binutils/gas/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25832/gas/config Modified Files: tc-ppc.c Log Message: Merge http://www.helsinki.fi/~ammonton/gekko-041107.patch - Add support for General Quantization Registers (GQRs) - Accompanying insns: psq_lx,lux,stx,stux,l,lu,st,stu dcbz_l Index: tc-ppc.c =================================================================== RCS file: /cvsroot/gc-linux/binutils/gas/config/tc-ppc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- tc-ppc.c 17 Jul 2005 00:14:50 -0000 1.2 +++ tc-ppc.c 18 Jul 2005 00:18:20 -0000 1.3 @@ -310,6 +310,7 @@ sdr1 has the value 25 srr0 has the value 26 srr1 has the value 27 + gqr0..7 have the values 912..919 The table is sorted. Suitable for searching by a binary search. */ @@ -407,6 +408,15 @@ { "fpscr", 0 }, + { "gqr0", 912 }, /* Gekko quantization registers */ + { "gqr1", 913 }, + { "gqr2", 914 }, + { "gqr3", 915 }, + { "gqr4", 916 }, + { "gqr5", 917 }, + { "gqr6", 918 }, + { "gqr7", 919 }, + { "lr", 8 }, /* Link Register */ { "pmr", 0 }, @@ -1109,7 +1119,7 @@ -maltivec generate code for AltiVec\n\ -me500, -me500x2 generate code for Motorola e500 core complex\n\ -mspe generate code for Motorola SPE instructions\n\ --mgekko generate code for Gamecube Gekko\n\ +-mgekko generate code for Gamecube Gekko\n\ -mregnames Allow symbolic names for registers\n\ -mno-regnames Do not allow symbolic names for registers\n")); #ifdef OBJ_ELF @@ -1154,7 +1164,7 @@ else ppc_cpu |= PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; } - else if (strcmp (default_cpu, "gekko") == 0) + else if (strcmp (default_cpu, "gekko") == 0) ppc_cpu |= (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32 | PPC_OPCODE_GEKKO); else @@ -2575,8 +2585,28 @@ if (need_paren) { - endc = ')'; need_paren = 0; + endc = ')'; + if (opindex_ptr[1]) + { + /* do check here if we have further opcodes */ + if (*str != endc && (endc != ',' || *str != '\0')) + { + as_bad(_("syntax error; found `%c' but expected `%c'"),*str,endc); + break; + } + /* we have to move over whitespace ourselves */ + if (*str != '\0') + { + ++str; + while (ISSPACE(*str)) + { + ++str; + } + } + /* now we're looking for the comma */ + endc = ','; + } } else if ((operand->flags & PPC_OPERAND_PARENS) != 0) { |