1. 22 Mar, 2011 23 commits
    • jsm28's avatar
      * config/arm/arm.opt (mhard-float, msoft-float): Use Alias. · 7e21f84a
      jsm28 authored
      	* config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
      	or -msoft-float here.
      	* config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
      	-msoft-float and -mhard-float.
      	(OPTION_DEFAULT_SPECS): Don't handle -mhard-float and
      	-msoft-float.
      	* config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
      	msoft-float.
      	* config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
      	-msoft-float.
      	(MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
      	* config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
      	not mhard-float.
      	(LIBGCC_SPEC): Don't handle -msoft-float.
      	* config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
      	-mhard-float.
      	* config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
      	msoft-float.
      	* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
      	-mfloat-abi=*, not -msoft-float and -mhard-float.
      	* config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
      	-msoft-float.
      	* config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
      	Use mfloat-abi=hard and mfloat-abi=soft in comments, not
      	mhard-float and msoft-float.
      	* config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
      	mfloat-abi=soft in comments, not mhard-float and msoft-float.
      	* config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
      	mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
      	mhard-float.
      	* config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
      	mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
      	msoft-float.
      	* config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
      	not mhard-float.
      	* config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
      	not msoft-float.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171313 138bc75d-0d04-0410-961f-82ee72b054a4
      7e21f84a
    • rth's avatar
      Remove alpha-winnt code from the backend. · 1b803a4f
      rth authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171312 138bc75d-0d04-0410-961f-82ee72b054a4
      1b803a4f
    • jsm28's avatar
      * config/alpha/alpha.c (alpha_handle_option): Access target_flags · b7ae8115
      jsm28 authored
      	via opts pointer.  Use error_at.  Don't assert that global
      	structures are in use.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171311 138bc75d-0d04-0410-961f-82ee72b054a4
      b7ae8115
    • jsm28's avatar
      * config/i386/i386.c (ix86_isa_flags_explicit): Remove. · b54fbaf9
      jsm28 authored
      	(ix86_handle_option): Access ix86_isa_flags and
      	ix86_isa_flags_explicit via opts pointer.  Don't assert that
      	global structures are in use.
      	(ix86_function_specific_save, ix86_function_specific_restore):
      	Update ix86_isa_flags_explicit field name.
      	* config/i386/i386.opt (ix86_isa_flags_explicit): New Variable
      	entry.
      	(ix86_isa_flags_explicit): Rename TargetSave entry to
      	x_ix86_isa_flags_explicit.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171310 138bc75d-0d04-0410-961f-82ee72b054a4
      b54fbaf9
    • rth's avatar
      Remove alpha-unicosmk code from the backend. · 04d75965
      rth authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171309 138bc75d-0d04-0410-961f-82ee72b054a4
      04d75965
    • jsm28's avatar
      * target.def (handle_option): Take gcc_options and · fba5dd52
      jsm28 authored
      	cl_decoded_option pointers and location_t.
      	* doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
      	* doc/tm.texi: Regenerate.
      	* hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
      	* hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
      	* lto-opts.c (lto_reissue_options): Generate option structure for
      	targetm.handle_option call.
      	* opts.c (target_handle_option): Update call to
      	targetm.handle_option.  Remove assertions about values now passed
      	down to hook.
      	* targhooks.c (default_target_handle_option): New.
      	* targhooks.h (default_target_handle_option): Declare.
      	* config/alpha/alpha.c: Include opts.h.
      	(alpha_handle_option): Update to new hook interface.
      	* config/arm/arm.c: Include opts.h.
      	(arm_handle_option): Update to new hook interface.
      	* config/arm/t-arm (arm.o): Update dependencies.
      	* config/bfin/bfin.c: Include opts.h.
      	(bfin_handle_option): Update to new hook interface.
      	* config/cris/cris.c: Include opts.h.
      	(cris_handle_option): Update to new hook interface.
      	* config/frv/frv.c: Include opts.h.
      	(frv_handle_option): Update to new hook interface.
      	* config/i386/i386.c: Include opts.h.
      	(ix86_handle_option): Update to new hook interface.
      	(ix86_valid_target_attribute_inner_p): Generate option structure
      	for call to ix86_handle_option.
      	* config/i386/t-i386 (i386.o): Update dependencies.
      	* config/ia64/ia64.c: Include opts.h.
      	(ia64_handle_option): Update to new hook interface.
      	* config/ia64/t-ia64 (ia64.o): Update dependencies.
      	* config/iq2000/iq2000.c: Include opts.h.
      	(iq2000_handle_option): Update to new hook interface.
      	* config/m32c/m32c.c: Include opts.h.
      	(m32c_handle_option): Update to new hook interface.
      	* config/m32r/m32r.c: Include opts.h.
      	(m32r_handle_option): Update to new hook interface.
      	* config/m68k/m68k.c: Include opts.h.
      	(m68k_handle_option): Update to new hook interface.
      	* config/mep/mep.c: Include opts.h.
      	(mep_handle_option): Update to new hook interface.
      	* config/microblaze/microblaze.c: Include opts.h.
      	(microblaze_handle_option): Update to new hook interface.
      	* config/mips/mips.c: Include opts.h.
      	(mips_handle_option): Update to new hook interface.
      	* config/mn10300/mn10300.c: Include opts.h.
      	(mn10300_handle_option): Update to new hook interface.
      	* config/pa/pa.c: Include opts.h.
      	(pa_handle_option): Update to new hook interface.
      	* config/pdp11/pdp11.c: Include opts.h.
      	(pdp11_handle_option): Update to new hook interface.
      	* config/rs6000/rs6000.c: Include opts.h.
      	(rs6000_handle_option): Update to new hook interface.
      	* config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
      	* config/rx/rx.c: Include opts.h.
      	(rx_handle_option): Update to new hook interface.
      	* config/s390/s390.c: Include opts.h.
      	(s390_handle_option): Update to new hook interface.
      	* config/score/score.c: Include opts.h.
      	(score_handle_option): Update to new hook interface.
      	* config/sh/sh.c: Include opts.h.
      	(sh_handle_option): Update to new hook interface.
      	* config/sparc/sparc.c: Include opts.h.
      	(sparc_handle_option): Update to new hook interface.
      	* config/v850/v850.c: Include opts.h.
      	(v850_handle_option): Update to new hook interface.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171308 138bc75d-0d04-0410-961f-82ee72b054a4
      fba5dd52
    • jsm28's avatar
      * gcc.c (driver_unknown_option_callback): Only permit and save · a4e747a2
      jsm28 authored
      	unknown -Wno- options.
      	(driver_wrong_lang_callback): Save options directly instead of via
      	driver_unknown_option_callback.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171307 138bc75d-0d04-0410-961f-82ee72b054a4
      a4e747a2
    • ebotcazou's avatar
      * combine.c (simplify_set): Try harder to find the best CC mode when · e4ffbd30
      ebotcazou authored
      	simplifying a nested COMPARE on the RHS.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171304 138bc75d-0d04-0410-961f-82ee72b054a4
      e4ffbd30
    • jsm28's avatar
      * MAINTAINERS (crx port, m68hc11 port): Remove. Move maintainers · 17b3d2a8
      jsm28 authored
      	to Write After Approval.
      	* config-ml.in: Don't handle arc-*-elf*.
      	* configure.ac (arc-*-*, crx-*-*, i[[3456789]]86-*-pe,
      	m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, mcore-*-pe*): Don't
      	handle GCC libraries.
      	* configure: Regenerate.
      
      contrib:
      	* compare-all-tests (all_targets): Remove crx and m68hc11.
      
      fixincludes:
      	* mkfixinc.sh: Don't handle i?86-moss-msdos* or i?86-*-pe.
      
      gcc:
      	* config/alpha/gnu.h: Remove.
      	* config/arc: Remove directory.
      	* config/arm/netbsd.h: Remove.
      	* config/arm/t-pe: Remove.
      	* config/crx: Remove directory.
      	* config/i386/netbsd.h: Remove.
      	* config/m68hc11: Remove directory.
      	* config/m68k/uclinux-oldabi.h: Remove.
      	* config/mcore/mcore-pe.h: Remove.
      	* config/mcore/t-mcore-pe: Remove.
      	* config/netbsd-aout.h: Remove.
      	* config/rs6000/gnu.h: Remove.
      	* config/sh/sh-symbian.h: Remove.
      	* config/sh/symbian-base.c: Remove.
      	* config/sh/symbian-c.c: Remove.
      	* config/sh/symbian-cxx.c: Remove.
      	* config/sh/symbian-post.h: Remove.
      	* config/sh/symbian-pre.h: Remove.
      	* config/sh/t-symbian: Remove.
      	* config/svr3.h: Remove.
      	* config/vax/netbsd.h: Remove.
      	* config.build: Don't handle i[34567]86-*-pe.
      	* config.gcc: Remove handling of deprecations for most deprecated
      	targets.
      	(m68k-*-uclinuxoldabi*): Add to second deprecated list.
      	(alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
      	i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
      	m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
      	powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
      	sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
      	Remove cases.
      	* config.host: Don't handle i[34567]86-*-pe.
      	* config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
      	(ASM_SPEC32): Don't handle -mcall-gnu.
      	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
      	-mcall-gnu.
      	(ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
      	STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
      	(LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
      	LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
      	(SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
      	* config/sh/sh-protos.h, config/sh/sh.c: Remove all code
      	conditional on SYMBIAN.
      	* configure.ac: Don't handle powerpc*-*-gnu*.
      	* configure: Regenerate.
      	* doc/extend.texi (interrupt attribute): Don't mention CRX.
      	* doc/install-old.texi (m6811, m6812): Don't mention.
      	* doc/install.texi (arc-*-elf*): Don't document multilib option.
      	(arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
      	(m68k-uclinuxoldabi): Don't mention.
      	* doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
      	Remove.
      	(-mcall-gnu): Remove.
      	* doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
      	families): Remove constraint documentation.
      
      gcc/testsuite:
      	* gcc.c-torture/execute/920501-8.x: Remove.
      	* gcc.c-torture/execute/930513-1.x: Remove.
      	* gcc.c-torture/execute/960312-1.x: Remove.
      	* gcc.c-torture/compile/20000804-1.c,
      	gcc.c-torture/compile/20001205-1.c,
      	gcc.c-torture/compile/20001226-1.c,
      	gcc.c-torture/compile/20010518-2.c,
      	gcc.c-torture/compile/20020312-1.c,
      	gcc.c-torture/compile/20020604-1.c,
      	gcc.c-torture/compile/920501-12.c,
      	gcc.c-torture/compile/920501-4.c,
      	gcc.c-torture/compile/920520-1.c,
      	gcc.c-torture/compile/980506-1.c,
      	gcc.c-torture/execute/980709-1.x,
      	gcc.c-torture/execute/990826-0.x: Don't XFAIL or use special
      	options for m68hc11.
      	* gcc.dg/cpp/assert4.c: Don't handle ARC.
      	* gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: Don't XFAIL for arc or
      	m68hc11.
      
      libgcc:
      	* config.host (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*,
      	arm-*-pe*, crx-*-elf, i[34567]86-*-netbsd*, i[34567]86-*-pe,
      	m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*, mcore-*-pe*,
      	powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
      	sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
      	Remove cases.
      
      libstdc++-v3:
      	* configure.ac: Don't handle powerpc*-*-gnu*.
      	* configure: Regenerate.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171302 138bc75d-0d04-0410-961f-82ee72b054a4
      17b3d2a8
    • gerald's avatar
      * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with... · bae8bb65
      gerald authored
      	(FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
      	(TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171301 138bc75d-0d04-0410-961f-82ee72b054a4
      bae8bb65
    • denisc's avatar
      * config/avr/avr-protos.h (expand_epilogue): Change prototype · 32969c63
      denisc authored
      	* config/avr/avr.h (struct machine_function): Add field sibcall_fails.
      	* config/avr/avr.c (init_cumulative_args)
      	(avr_function_arg_advance): Use it.
      	* config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
      	sibcall epilogues.
      	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
      	(avr_function_ok_for_sibcall): ...this new function.
      	(avr_lookup_function_attribute1): New static Function.
      	(avr_naked_function_p, interrupt_function_p)
      	(signal_function_p, avr_OS_task_function_p)
      	(avr_OS_main_function_p): Use it.
      	* config/avr/avr.md ("sibcall", "sibcall_value")
      	("sibcall_epilogue"): New expander.
      	("*call_insn", "*call_value_insn"): New insn.
      	("call_insn", "call_value_insn"): Remove
      	("call", "call_value", "epilogue"): Change expander to handle
      	sibling calls.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171300 138bc75d-0d04-0410-961f-82ee72b054a4
      32969c63
    • nickc's avatar
      * doc/invoke.texi (Overall Options): Move closing brace to end of · 2bd4d851
      nickc authored
      	options list.
      	(Optimization Options): Add missing @gol.
      	(Directory Options): Likewise.
      	(i386 and x86-64 Options): Likewise.
      	(RS6000 and PowerPC Options): Likewise.
      	(i386 and x86-64 Windows Options): Likewise.
      	(V850 Options): Add text missing from descriptions.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171298 138bc75d-0d04-0410-961f-82ee72b054a4
      2bd4d851
    • rth's avatar
      * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec. · cf840280
      rth authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171296 138bc75d-0d04-0410-961f-82ee72b054a4
      cf840280
    • rth's avatar
      * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New. · e484266f
      rth authored
      	(avr_incoming_return_addr_rtx): New.
      	(emit_push_byte): New.
      	(expand_prologue): Use it.  Remove incorrect dwarf annotation for
      	SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
      	annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
      	(emit_pop_byte): New.
      	(expand_epilogue): Use it.  Pop frame pointer by bytes.
      	* config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
      	(INCOMING_RETURN_ADDR_RTX): New.
      	(INCOMING_FRAME_SP_OFFSET): New.
      	(ARG_POINTER_CFA_OFFSET): New.
      	* config/avr/avr.md (*pushqi): Fix mode of auto-inc.
      	(*pushhi, *pushsi, *pushsf, popqi): Likewise.
      	(pophi): Remove.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171295 138bc75d-0d04-0410-961f-82ee72b054a4
      e484266f
    • froydnj's avatar
      * tree.c (build_call_1): New function. · 0b81155f
      froydnj authored
      	(build_call_valist, build_call_array_loc, build_call_vec): Call it.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171288 138bc75d-0d04-0410-961f-82ee72b054a4
      0b81155f
    • rguenth's avatar
      2011-03-22 Richard Guenther <rguenther@suse.de> · 1e400367
      rguenth authored
      	PR tree-optimization/48228
      	* tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
      	for single-arg PHIs.
      
      	* gcc.dg/Wstrict-overflow-23.c: New testcase.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171287 138bc75d-0d04-0410-961f-82ee72b054a4
      1e400367
    • abel's avatar
      PR rtl-optimization/48143 · 68ff067d
      abel authored
              * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
              (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
              sse2_cvtps2pd): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171286 138bc75d-0d04-0410-961f-82ee72b054a4
      68ff067d
    • krebbel's avatar
      2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> · 0a01a6f5
      krebbel authored
      	* recog.c (canonicalize_change_group): Use validate_unshare_change.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171285 138bc75d-0d04-0410-961f-82ee72b054a4
      0a01a6f5
    • rguenth's avatar
      2011-03-22 Richard Guenther <rguenther@suse.de> · c86930b0
      rguenth authored
      	* gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
      	a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
      	* tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
      	and REALIGN_LOAD_EXPR.
      	(verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
      	DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
      	* expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
      	DOT_PROD_EXPR case ...
      	(expand_expr_real_2): ... here.
      	* gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
      	and REALIGN_LOAD_EXPR.
      	* tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
      	* tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
      	(vect_create_epilog_for_reduction): Likewise.
      	(vectorizable_reduction): Likewise.
      	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171284 138bc75d-0d04-0410-961f-82ee72b054a4
      c86930b0
    • ebotcazou's avatar
      * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions. · 00044e94
      ebotcazou authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171282 138bc75d-0d04-0410-961f-82ee72b054a4
      00044e94
    • krebbel's avatar
      2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> · b6382e93
      krebbel authored
      	* config/s390/s390.c (s390_delegitimize_address): Fix offset
      	handling for PLTOFF/GOTOFF.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171281 138bc75d-0d04-0410-961f-82ee72b054a4
      b6382e93
    • nickc's avatar
      * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove · baa89d5a
      nickc authored
      	trailing backslash from the end of the macro definition.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171280 138bc75d-0d04-0410-961f-82ee72b054a4
      baa89d5a
    • krebbel's avatar
      2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> · 2b2b857a
      krebbel authored
      	* config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
      	and PLT unspecs.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171279 138bc75d-0d04-0410-961f-82ee72b054a4
      2b2b857a
  2. 21 Mar, 2011 17 commits