From 74ff3fabc28497d3e48c88ed6e7468f2838a3a0c Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Thu, 10 May 2007 10:11:32 +0000 Subject: rename IMOVEW as IMOVEDB, add sincosR instruction for IA32, add 32 bit integer and real arrays for AI64 --- cgopt.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'cgopt.c') diff --git a/cgopt.c b/cgopt.c index 0f7e22c..a248660 100644 --- a/cgopt.c +++ b/cgopt.c @@ -51,8 +51,6 @@ # define OPTIMIZE_LOOPS #endif -#pragma segment Code4 - /* from cgcode.c : */ extern struct basic_block *first_block; @@ -1595,7 +1593,10 @@ IF_G_POWER ( case IUMULH: ) #ifndef I486_USE_SCRATCH_REGISTER case IMOVE: #endif - case IMOVEB: case IMOVEW: + case IMOVEB: case IMOVEDB: +#ifdef G_AI64 + case IMOVEQB: +#endif case IFCOS: case IFSIN: case IFTAN: #ifdef M68000 case IFACOS: case IFASIN: case IFATAN: case IFEXP: case IFLN: case IFLOG10: @@ -1608,7 +1609,10 @@ IF_G_POWER ( case IUMULH: ) IF_G_SPARC (case IFMOVEHI: case IFMOVELO:) IF_G_RISC (case IADDI: case ILSLI:) #ifdef G_AI64 - case IMOVESW: + case ILOADSQB: case IFLOADS: case IFCVT2S: case IFMOVES: +#endif +#if defined (I486) && !defined (G_A64) + case IFSINCOS: #endif define_parameter (&instruction->instruction_parameters[1]); use_parameter (&instruction->instruction_parameters[0]); @@ -3897,7 +3901,10 @@ IF_G_POWER (case ICMPLW:) #ifndef I486_USE_SCRATCH_REGISTER case IMOVE: #endif - case IMOVEB: case IMOVEW: + case IMOVEB: case IMOVEDB: +#ifdef G_AI64 + case IMOVEQB: +#endif case IFCOS: case IFSIN: case IFTAN: #ifdef M68000 case IFACOS: case IFASIN: case IFATAN: case IFEXP: case IFLN: case IFLOG10: @@ -3910,7 +3917,7 @@ IF_G_POWER (case ICMPLW:) IF_G_SPARC (case IFMOVEHI: case IFMOVELO:) IF_G_RISC (case IADDI: case ILSLI:) #ifdef G_AI64 - case IMOVESW: + case ILOADSQB: case IFLOADS: case IFCVT2S: case IFMOVES: #endif #if 1 if (instruction->instruction_parameters[1].parameter_type==P_REGISTER || @@ -4033,6 +4040,14 @@ IF_G_RISC (case IADDI: case ILSLI:) case IBEQ: case IBGE: case IBGT: case IBLE: case IBLT: case IBNE: case IBO: case IBGEU: case IBGTU: case IBLEU: case IBLTU: case IBNO: break; +#if defined (I486) && !defined (G_A64) + case IFSINCOS: + use_2_same_type_registers + (&instruction->instruction_parameters[0].parameter_data.reg,USE_DEF, + &instruction->instruction_parameters[1].parameter_data.reg,DEF, + F_REGISTER); + break; +#endif default: internal_error_in_function ("allocate_registers"); } -- cgit v1.2.3