From fe53f12c8141367dff4137991ad8ce73741761cb Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Fri, 31 Mar 2006 17:47:22 +0000 Subject: [PATCH] removed wrong instructions with traps on overflow --- ir/be/mips/mips_spec.pl | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/ir/be/mips/mips_spec.pl b/ir/be/mips/mips_spec.pl index 736f0188e..c116c5801 100644 --- a/ir/be/mips/mips_spec.pl +++ b/ir/be/mips/mips_spec.pl @@ -156,22 +156,12 @@ $comment_string = "#"; add => { op_flags => "C", reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, - emit => ' - if (mode_is_signed(get_irn_mode(n))) -2. add %D1, %S1, %S2 - else -2. addu %D1, %S1, %S2 -' + emit => '. addu %D1, %S1, %S2' }, addi => { reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, - emit => ' - if (mode_is_signed(get_irn_mode(n))) -2. addi %D1, %S1, %C - else -2. addiu %D1, %S1, %C -', + emit => '. addiu %D1, %S1, %C', cmp_attr => 'return attr_a->tv != attr_b->tv;', }, @@ -191,7 +181,7 @@ div => { reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "none", "none", "none", "none" ] }, emit => ' mips_attr_t *attr = get_mips_attr(n); - if(attr->modes.original_mode->sign) { + if (attr->modes.original_mode->sign) { 2. div %S1, %S2 } else { 2. divu %S1, %S2 @@ -218,10 +208,7 @@ nor => { not => { reg_req => { in => [ "general_purpose" ], out => [ "general_purpose" ] }, - emit => ' - assert(get_mode_size_bits(get_irn_mode(n)) == 32); -. nor %D1, %S1, $zero -' + emit => '. nor %D1, %S1, $zero' }, or => { @@ -296,11 +283,6 @@ sllv => { }, sub => { - reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, - emit => '. sub %D1, %S1, %S2' -}, - -subu => { reg_req => { in => [ "general_purpose", "general_purpose" ], out => [ "general_purpose" ] }, emit => '. subu %D1, %S1, %S2', }, -- 2.20.1