Mercurial > hg > CbC > CbC_gcc
diff gcc/config/i386/i386.md @ 25:2476ed92181e
modified machine description of i386 for support indirect sibcall attributed fastcall.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 27 Oct 2009 16:04:06 +0900 |
parents | 58ad6c70ea60 |
children | 27e6f95b2c21 |
line wrap: on
line diff
--- a/gcc/config/i386/i386.md Thu Oct 15 18:47:39 2009 +0900 +++ b/gcc/config/i386/i386.md Tue Oct 27 16:04:06 2009 +0900 @@ -15009,6 +15009,18 @@ DONE; }) +(define_expand "sibcall_pop" + [(parallel [(call (match_operand:QI 0 "" "") + (match_operand:SI 1 "" "")) + (set (reg:SI SP_REG) + (plus:SI (reg:SI SP_REG) + (match_operand:SI 3 "" "")))])] + "" +{ + ix86_expand_call (NULL, operands[0], operands[1], operands[2], operands[3], 1); + DONE; +}) + (define_insn "*call_0" [(call (mem:QI (match_operand 0 "constant_call_address_operand" "")) (match_operand 1 "" ""))] @@ -15132,6 +15144,21 @@ DONE; }) +(define_expand "sibcall_value_pop" + [(parallel [(set (match_operand 0 "" "") + (call (match_operand:QI 1 "" "") + (match_operand:SI 2 "" ""))) + (set (reg:SI SP_REG) + (plus:SI (reg:SI SP_REG) + (match_operand:SI 4 "" "")))])] + "!TARGET_64BIT" +{ + ix86_expand_call (operands[0], operands[1], operands[2], + operands[3], operands[4], 1); + DONE; +}) + + ;; Call subroutine returning any type. (define_expand "untyped_call"