From: Michael Beck Date: Thu, 18 May 2006 11:57:28 +0000 (+0000) Subject: SMUL and UMUL added X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=1044afb030afc50abfcef4666353ef4034dee358;p=libfirm SMUL and UMUL added --- diff --git a/ir/be/arm/arm_spec.pl b/ir/be/arm/arm_spec.pl index 320bac545..43ae48570 100644 --- a/ir/be/arm/arm_spec.pl +++ b/ir/be/arm/arm_spec.pl @@ -184,6 +184,24 @@ $comment_string = '/*'; "emit" =>'. mul %D1, %S1, %S2 /* Mul(%S1, %S2) -> %D1, (%A1, %A2) */' }, +"Smull" => { + #"op_flags" => "C", + "irn_flags" => "R", + "comment" => "construct signed 64bit Mul: Mul(a, b) = Mul(b, a) = a * b", + "reg_req" => { "in" => [ "gp", "gp" ], "out" => [ "gp", "gp" ] }, + "emit" =>'. smull %D1, %D2, %S1, %S2 /* SMull(%S1, %S2) -> %D1, %D2, (%A1, %A2) */', + "outs" => [ "low", "high" ], +}, + +"Umull" => { + #"op_flags" => "C", + "irn_flags" => "R", + "comment" => "construct unsigned 64bit Mul: Mul(a, b) = Mul(b, a) = a * b", + "reg_req" => { "in" => [ "gp", "gp" ], "out" => [ "gp", "gp" ] }, + "emit" =>'. umull %D1, %D2, %S1, %S2 /* UMull(%S1, %S2) -> %D1, %D2, (%A1, %A2) */', + "outs" => [ "low", "high" ], +}, + "Mla" => { #"op_flags" => "C", "irn_flags" => "R",