summaryrefslogtreecommitdiff
path: root/cgpwas.c
diff options
context:
space:
mode:
authorJohn van Groningen2004-04-23 14:20:33 +0000
committerJohn van Groningen2004-04-23 14:20:33 +0000
commit07f581b742ee623014947b9c9ced8eb26c59603d (patch)
tree6f064e8fc905fbeb231c115cf1ceef24f0fd43bf /cgpwas.c
parentport to gcc on Mac OS X (diff)
implement umulIIL instruction on the PowerPC
Diffstat (limited to 'cgpwas.c')
-rw-r--r--cgpwas.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/cgpwas.c b/cgpwas.c
index 776cadd..16ce013 100644
--- a/cgpwas.c
+++ b/cgpwas.c
@@ -2259,6 +2259,21 @@ static void w_as_mul_instruction (struct instruction *instruction)
w_as_newline();
}
+static void w_as_umulh_instruction (struct instruction *instruction)
+{
+ int r,reg;
+
+ r=instruction->instruction_parameters[1].parameter_data.reg.r;
+
+ reg=w_as_register_parameter (instruction->instruction_parameters[0],SIZE_LONG);
+
+ w_as_opcode ("mulhwu");
+ w_as_register_comma (r);
+ w_as_register_comma (r);
+ w_as_register (reg);
+ w_as_newline();
+}
+
static void w_as_mulo_instruction (struct instruction *instruction)
{
int r,reg;
@@ -3183,6 +3198,9 @@ static void w_as_instructions (register struct instruction *instruction)
case IMULO:
w_as_mulo_instruction (instruction);
break;
+ case IUMULH:
+ w_as_umulh_instruction (instruction);
+ break;
case IFTST:
default:
internal_error_in_function ("w_as_instructions");