o Fix padd insn

o	Take an interrupt when an int event occures.
This commit is contained in:
Andrew Cagney 1997-06-02 15:00:43 +00:00
parent e08eb976ab
commit c7cebfa32c

View file

@ -3359,11 +3359,13 @@ build_instruction (doisa, features, mips16, insn)
char* maximum; char* maximum;
char* minimum; char* minimum;
char* signedness; char* signedness;
char* signletter;
if ( insn->flags & UNSIGNED ) if ( insn->flags & UNSIGNED )
{ {
tmptype = type_for_data_len( insn ); tmptype = type_for_data_len( insn );
signedness = "unsigned"; signedness = "unsigned";
signletter = "U";
maximum = umax_for_data_len( insn ); maximum = umax_for_data_len( insn );
minimum = 0; minimum = 0;
} }
@ -3371,29 +3373,31 @@ build_instruction (doisa, features, mips16, insn)
{ {
tmptype = type_for_data_len( insn ); tmptype = type_for_data_len( insn );
signedness = ""; signedness = "";
maximum = 0; signletter = "S";
minimum = 0; maximum = max_for_data_len( insn );
minimum = min_for_data_len( insn );
} }
else else
{ {
tmptype = type_for_data_len( insn ); tmptype = type_for_data_len( insn );
signedness = ""; signedness = "";
maximum = max_for_data_len( insn ); signletter = "S";
minimum = min_for_data_len( insn ); maximum = 0;
minimum = 0;
} }
printf("int i;\n"); printf("int i;\n");
printf("for(i=0;i<%sS_IN_MMI_REGS;i++)\n", name ); printf("for(i=0;i<%sS_IN_MMI_REGS;i++)\n", name );
printf(" {\n"); printf(" {\n");
printf(" %s %s r = RS_S%s(i) %s RT_S%s(i);\n", signedness, tmptype, letter, op, letter ); printf(" %s %s r = RS_%s%s(i) %s RT_%s%s(i);\n", signedness, tmptype, signletter, letter, op, signletter, letter );
if ( maximum ) if ( maximum )
{ {
printf(" if (r > %s) GPR_S%s(destreg,i) = %s;\n", maximum, letter, maximum ); printf(" if (r > %s) GPR_%s%s(destreg,i) = %s;\n", maximum, signletter, letter, maximum );
if ( minimum ) if ( minimum )
printf(" else if (r < %s) GPR_S%s(destreg,i) = %s;\n", minimum, letter, minimum ); printf(" else if (r < %s) GPR_%s%s(destreg,i) = %s;\n", minimum, signletter, letter, minimum );
printf(" else "); printf(" else ");
} }
printf("GPR_S%s(destreg,i) = r;\n", letter ); printf("GPR_%s%s(destreg,i) = r;\n", signletter, letter );
printf(" }\n"); printf(" }\n");
break; break;
} }