From: Dave A. <ai...@us...> - 2001-09-18 00:13:53
|
Update of /cvsroot/linux-vax/tools/src/gcc/config/vax In directory usw-pr-cvs1:/tmp/cvs-serv21477 Modified Files: vax.md Log Message: DA: fix for pic subtract to work.. fixes my inline case with ld.so _dl_strlen from uClibc okay.. Index: vax.md =================================================================== RCS file: /cvsroot/linux-vax/tools/src/gcc/config/vax/vax.md,v retrieving revision 2.12 retrieving revision 2.13 diff -u -r2.12 -r2.13 --- vax.md 2000/08/20 15:23:44 2.12 +++ vax.md 2001/09/18 00:13:49 2.13 @@ -752,13 +752,25 @@ subf3 %2,%1,%0") (define_insn "subsi3" - [(set (match_operand:SI 0 "general_operand" "=g,g") - (minus:SI (match_operand:SI 1 "general_operand" "0,g") - (match_operand:SI 2 "general_operand" "g,g")))] + [(set (match_operand:SI 0 "general_operand" "=g") + (minus:SI (match_operand:SI 1 "general_operand" "g") + (match_operand:SI 2 "general_operand" "g"))) + (clobber (match_scratch:SI 3 "&=g"))] "" - "@ - subl2 %2,%0 - subl3 %2,%1,%0") + "* +{ + if (rtx_equal_p(operands[1], operands[0])) + { + if ((flag_pic) + && vax_symbolic_operand (operands[2], GET_MODE (operands[2]))) + return \"movab %a2,%3;subl2 %3,%0\"; + return \"subl2 %2,%0\"; + } + if ((flag_pic) + && vax_symbolic_operand (operands[2], GET_MODE (operands[2]))) + return \"movab %a2,%3;subl3 %3,%1,%0\"; + return \"subl3 %2,%1,%0\"; +}") (define_insn "subhi3" [(set (match_operand:HI 0 "general_operand" "=g,g") |