Commit Graph

48201 Commits

Author SHA1 Message Date
Nick Clifton
f0375c6680 arm.c (is_load_address): Rename to...
* config/arm/arm.c (is_load_address): Rename to... (arm_memory_load_p) ... this
and make it check for SUBREGs and constant loads that will be converted into
loads from the minipool.
(is_cirrus_insn): Rename to ... (arm_cirrus_insn_p): ... this, for consistency.
Replace test of CIRRUS_NO with CIRRUS_NOT.
(cirrus_reorg): Use renamed functions.
(note_invalid_constants): Change from a void function to bool.  Add an extra
parameter, saying whether the fixups should be pushed.  Return true if fixups
are needed.
(arm_reorg): Use renamed functions.  Use INSN_P.  Replace test of CIRRUS_NO
with CIRRUS_NOT.
* config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that other floating point
co-processors can also affect this.
* config/arm/arm.md ("type" attribute): Add mav_farith and mav_dmult.  Replace
references to "cirrus_type" attribute with "type".
* config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
("cirrus_type" attribute): Delete - use "type" instead.
("cirrus" attribute): Replace 'no' with 'not' and 'yes' with 'normal'.

From-SVN: r63466
2003-02-26 11:26:37 +00:00
Jan Hubicka
0d446150c2 objc-act.c: Include cgraph.h
* objc-act.c: Include cgraph.h
	(mark_referenced_methods): New function.
	(objc_init): Call it.
	* objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.

	* c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
	mode.

	* optabs.c (expand_fix): Do not widen the input operand.

	* expr.c (emit_group_store):  Fix crash when converting single
	register into complex register.

	* Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
	* alias.c: Include timevar.h
	(init_alias_analysis):  Set timevar
	* jump.c: Include timevar.h
	(rebuild_jump_labels):  Set timevar
	* regcalss.c: Include timevar.h
	(reg_scan):  Set timevar
	* timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New

From-SVN: r63464
2003-02-26 11:09:33 +00:00
Zdenek Dvorak
9541e2e3d9 Remove -funroll-loops -fpeel-loops mistakenly added to BOOT_CFLAGS in my
last commit.

From-SVN: r63463
2003-02-26 10:49:54 +00:00
Zdenek Dvorak
b17d5d7c3b cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
* cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.

	* Makefile.in (loop-unroll.o): New.
	* cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
	(unroll_and_peel_loops): Declare.
	* alias.c (init_alias_analysis): Flag_unroll_loops renamed to
	flag_old_unroll_loops.
	* loop.c (loop_invariant_p): Ditto.
	* unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
	flag_old_unroll_all_loops.
	* flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
	(flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
	* params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
	(PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
	PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
	PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
	PARAM_MAX_ONCE_PEELED_INSNS): New.
	* toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
	(flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
	instead of old one.
	(flag_peel_loops): New.
	(lang_independent_options): The new flags added.
	(rest_of_compilation): Call new unroller.
	(process_options): Setup flags for coexistence of old and new unroller.
	* doc/invoke.texi: Document new options.
	* doc/passes.texi: Document new unroller pass.

From-SVN: r63462
2003-02-26 10:48:36 +00:00
David Billinghurst
244f7aa99a fixincl.x: Regenerate
2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>

	* fixinc/fixincl.x: Regenerate

From-SVN: r63461
2003-02-26 10:16:31 +00:00
Josef Zlomek
1d14f99280 function.c (assign_parms): Set reg_attrs for parameters passed in registers.
* function.c (assign_parms): Set reg_attrs for parameters passed in
	registers.

From-SVN: r63458
2003-02-26 06:45:21 +00:00
Mark Mitchell
cec24319c6 re PR c++/9683 (bug in initialization chains for static const variables from template classes)
PR c++/9683
	* decl2.c (prune_vars_needing_no_initialization): Do not throw
	away initializations for DECL_EXTERNAL VAR_DECLs.
	(finish_file): Adjust accordingly.
	* pt.c (instantiate_decl): Do not defer VAR_DECLs.

	PR c++/9683
	* g++.dg/template/static3.C: New test.

From-SVN: r63455
2003-02-26 05:39:01 +00:00
Alan Modra
38a843911d mention PR number
From-SVN: r63453
2003-02-26 16:06:38 +10:30
Mark Mitchell
c0b1cc97a4 re PR c++/9829 (Missing colon in nested namespace usage causes ICE)
PR c++/9829
	* g++.dg/parse/namespace6.C: New test.

From-SVN: r63452
2003-02-26 05:26:50 +00:00
Alan Modra
8ace9f18b7 * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
From-SVN: r63449
2003-02-26 15:51:26 +10:30
David Edelsohn
9a29ee42bf xcoff.h (ASM_FILE_START): Do not emit machine pseudo-op.
* config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
        pseudo-op.

From-SVN: r63448
2003-02-25 23:30:59 -05:00
Jeff Law
7da82429fc Fix return type in new test.
From-SVN: r63447
2003-02-25 20:35:32 -07:00
Roger Sayle
8beccec86d combine.c (combine_simplify_rtx, [...]): Use CC0_P.
* combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
	* cse.c (invalidate_skipped_set):  Likewise.
	* integrate.c (subst_constants):  Likewise.
	* jump.c (reversed_comparison_code_parts):  Likewise.
	* loop.c (canonicalize_condition):  Likewise.
	* simplify-rtx.c (simplify_relational_operation):  Likewise.

From-SVN: r63446
2003-02-26 03:05:40 +00:00
Roger Sayle
b052d8ee4d builtins.def (DEF_LIB_ALWAYS_BUILTIN, [...]): Delete.
* builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
	(abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
	the appropriate macro to define built-in function.
	(fmod,fmodf,fmodl): New built-in functions.

	* java/decl.c (java_init_decl_processing): Get soft_fmod_node from
	built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.

	* doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.

From-SVN: r63445
2003-02-26 03:02:14 +00:00
Richard Henderson
8d4540089a i386.c (function_arg): Pass variable sized structures correctly on the stack.
* config/i386/i386.c (function_arg): Pass variable sized
        structures correctly on the stack.

From-SVN: r63442
2003-02-25 17:26:51 -08:00
GCC Administrator
61ba356a99 Daily bump.
From-SVN: r63440
2003-02-26 00:17:03 +00:00
Phil Edwards
bd2726e0ca Intro.3: Update with new (proper) names.
2003-02-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Update with new (proper) names.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/run_doxygen:  More comments, fix up man pages.
	Fake entries for standard typedefs.
	* docs/doxygen/user.cfg.in:  Turn INLINE_INHERITED_MEMB back on.
	* docs/html/documentation.html:  Top-level man page is now called
	C++Intro.
	* include/std/std_limits.h:  Doxygenate.

From-SVN: r63433
2003-02-26 00:02:16 +00:00
Kazu Hirata
fc943f5542 reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS does not reduce the cost of SET.
* reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
	does not reduce the cost of SET.

From-SVN: r63426
2003-02-25 23:19:12 +00:00
Franz Sirl
3eaa60442f re PR target/9732 ([ppc32] Wrong code with -O2 -fPIC)
2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR target/9732
	* gcc.dg/20030225-1.c: New test.

From-SVN: r63424
2003-02-25 23:13:42 +00:00
Franz Sirl
14f00213a7 re PR target/9732 ([ppc32] Wrong code with -O2 -fPIC)
2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR target/9732
	* config/rs6000/rs6000.c (first_reg_to_save): Handle
	PIC_OFFSET_TABLE_REGNUM for -fPIC too.
	(rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Likewise.
	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
	PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.

From-SVN: r63423
2003-02-25 23:11:55 +00:00
Richard Henderson
8164b17107 real.c (real_to_integer2): Force overflow result only for unsigned overflow.
* real.c (real_to_integer2): Force overflow result only for
        unsigned overflow.

From-SVN: r63421
2003-02-25 15:00:54 -08:00
Kazu Hirata
9e48c409cd * gcse.c (cprop_jump): Revert the 2003-02-23 change.
From-SVN: r63420
2003-02-25 22:56:27 +00:00
Vladimir Makarov
4e21585b53 Fixing typo in ChangeLog.
From-SVN: r63417
2003-02-25 21:45:18 +00:00
Vladimir Makarov
3044064ca5 sched-ebb.c (add_deps_for_risky_insns): Add the dependence when there is no similar load.
2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
            Richard Henderson  <rth@redhat.com>

	* sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
	there is no similar load.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r63416
2003-02-25 21:43:16 +00:00
Vladimir Makarov
15aab9c0ac sched-int.h (INSN_TRAP_CLASS, [...]): Move them from sched-rgn.c.
2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
            Richard Henderson  <rth@redhat.com>

	* sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
	sched-rgn.c.
	(add_forward_dependence): New function prototype.

	* sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
	sched-init.h.
	(CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
	them to haifa-sched.c.

	* haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
	haifa_classify_insn): Move them from sched-rgn.c.

	* sched-deps.c (add_dependence): Return flag of creating a new
	entry.
	(add_forward_dependence): New function.
	(compute_forward_dependences): Use the function.

	* sched-ebb.c (earliest_block_with_similiar_load): New function.
	(add_deps_for_risky_insns): New function.
	(schedule_ebb): Call the function.

From-SVN: r63415
2003-02-25 20:40:57 +00:00
Aldy Hernandez
c8e4f0e96e 003-02-20 Aldy Hernandez <aldyh@redhat.com>
* doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
        TARGET_VECTOR_OPAQUE_P.  Document accordingly.

        * testsuite/gcc.dg/20030218-1.c: Check that initialization of
        opaque types fail.

        * c-typeck.c (comptypes): Change call to vector_types_compatible
        to vector_opaque_p.
        (convert_for_assignment): Call vector_opaque_p instead of
        vector_types_compatible.
        (really_start_incremental_init): Disallow initialization of opaque
        types.

        * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
        Define TARGET_VECTOR_OPAQUE_P.
        (TARGET_INITIALIZER): Same.

        * target.h (struct gcc_target): Remove vector_types_compatible.
        Add vector_opaque_p.

        * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
        Remove.
        (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
        a vector type.  Change return type to bool.
        (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
        (TARGET_VECTOR_OPAQUE_P): Define.

        * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
        target hook.
        Include target.h.
        (cp_parser_init_declarator): Fix typo in function comments.

From-SVN: r63411
2003-02-25 17:06:41 +00:00
Gabriel Dos Reis
7d9f2df263 decl.c (add_binding): Time TV_NAME_LOOKUP.
* decl.c (add_binding): Time TV_NAME_LOOKUP.
      (push_class_binding): Likewise.
      (set_namespace_binding): Likewise.

From-SVN: r63410
2003-02-25 14:11:59 +00:00
Nick Clifton
4cf8cbf05a remove site-file support - it is obsolete
From-SVN: r63409
2003-02-25 14:05:36 +00:00
Jan Hubicka
fa1a0d022c Makefile.in (lcm.o): Add dependency on function.h
* Makefile.in (lcm.o):  Add dependency on function.h
	* lcm.c (function.h): Include.
	* i386.c (machine_function, ix86_stack_locals,
	* ix86_save_varrargs_registers) : Move to
	...
	* i386.h (machine_function, ix86_stack_locals,
	ix86_save_varrargs_registers): ... here; add optimize_mode_switching
	(ix86_optimize_mode_switching): New.
	* i386.md (fix patterns): Set ix86_optimize_mode_switching

From-SVN: r63404
2003-02-25 11:39:20 +00:00
Michael Koch
9d4c156509 MappedByteFileBuffer.java, [...]: New files, both are not compiled yet to get not noncompiling CVS.
2003-02-25  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/MappedByteFileBuffer.java,
	gnu/java/nio/natMappedByteFileBuffer.cc:
	New files, both are not compiled yet to get not noncompiling CVS.

From-SVN: r63403
2003-02-25 11:09:44 +00:00
Nick Clifton
b103bfefc9 Fix typo.
Fix typo.  Name	of fourth arg is 'fndecl' not 'indirect'.  Update comment
describing the function's parameters.

From-SVN: r63401
2003-02-25 10:55:45 +00:00
Uwe Stieber
ef4e756902 Add support for kaOS as cross build target system.
From-SVN: r63400
2003-02-25 10:45:00 +00:00
Nick Clifton
64458158b9 remove bogus files accidentally commited during a previous delta
From-SVN: r63399
2003-02-25 10:17:06 +00:00
Scott Snyder
63b1a6ba01 re PR libstdc++/9811 (incorrect documentation for std::map::lower_bound, etc.)
2003-02-25  Scott Snyder  <snyder@fnal.gov>

	PR libstdc++/9811
	* include/bits/stl_map.h (lower_bound, upper_bound, equal_range):
	Correct documentation.
	* include/bits/stl_multimap.h (lower_bound, upper_bound,
	equal_range): Likewise.

From-SVN: r63396
2003-02-25 06:27:10 +00:00
GCC Administrator
bacbf39910 Daily bump.
From-SVN: r63392
2003-02-25 00:17:06 +00:00
Mark Mitchell
d12ad970f2 * README: Remove out-of-date information.
From-SVN: r63384
2003-02-24 22:01:56 +00:00
Mark Mitchell
353b4fc0d7 re PR c++/9836 (Error with typdefs in partial specializations of classes)
PR c++/9836
	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
	specializations back to the main template.
	* parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
	* pt.c (resolve_typename_type): Likewise.

	PR c++/9836
	* g++.dg/template/spec6.C: New test.

From-SVN: r63383
2003-02-24 21:52:00 +00:00
Tom Tromey
2afced1191 AbstractPreferences.java (isUserNode): Implemented.
* java/util/prefs/AbstractPreferences.java (isUserNode):
	Implemented.

From-SVN: r63382
2003-02-24 21:20:19 +00:00
Jan Hubicka
2d21f7d6b3 * combine.c (simplify_shift_const): Fix previous patch.
From-SVN: r63380
2003-02-24 21:10:39 +00:00
Jeffrey D. Oldham
8b6a662e3e re PR c++/9778 (ICE with sizeof(expr) in non-type template arg)
2003-02-24  Jeffrey D. Oldham  <oldham@codesourcery.com>

	PR c++/9778
	* cp/pt.c (tsubst_copy_and_build): For a templated function inside a
	scope, process template arguments.
	* testsuite/g++.dg/parse/template6.C: New test case.

From-SVN: r63379
2003-02-24 20:39:38 +00:00
Paolo Carlini
57df94c8f6 re PR libstdc++/9825 (filebuf::sputbackc breaks sbumpc)
2003-02-24  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9825
	* src/fstream.cc
	(basic_filebuf<char/wchar_t>::_M_underflow_common): When
	__bump is true (uflow), always increment the read pointer
	(_M_in_cur) before returning successfully.
	* testsuite/27_io/filebuf_virtuals.cc (test12): Add.

From-SVN: r63378
2003-02-24 20:39:31 +00:00
Jeff Law
2bac97f7e7 i386.md (testdi_1_rex64): Discourage reload from using the %eax alternative.
* i386.md (testdi_1_rex64): Discourage reload from using the %eax
        alternative.
        (testsi_1, testhi_1, testqi_1): Likewise.

From-SVN: r63376
2003-02-24 13:18:44 -07:00
Rainer Orth
7f9fc00642 physmem.c (physmem_total): Test for GSI_PHYSMEM.
* physmem.c (physmem_total) [HAVE_GETSYSINFO]: Test for
	GSI_PHYSMEM.
	(physmem_available) [HAVE_TABLE]: Test for TBL_VMSTATS.

From-SVN: r63373
2003-02-24 19:31:49 +00:00
Jeff Law
201b9f2a5d * gcc.c-torture/compile/20030224-1.c: New test for ia32 backend bug.
From-SVN: r63371
2003-02-24 11:57:06 -07:00
Rainer Orth
f8dc212b5d re PR c/5059 (Compiling s/w containing the use of DIR.H fails on other stat-calls)
* config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
	__EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
	* doc/extend.texi (Tru64 Pragmas): Reflect this.

	* fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
	extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
	testcase.
	Fixes PR c/5059, c/6126, other/9671.

	testsuite:
	* g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX.
	* gcc.dg/pragma-ep-1.c: Likewise.

From-SVN: r63370
2003-02-24 18:52:51 +00:00
Paolo Carlini
391cd0955e PR libstdc++/9404, PR libstdc++/9701 (partial)
2003-02-24  Paolo Carlini <pcarlini@unitus.it>
	    Nathan Myers <ncm@cantrip.org>

	PR libstdc++/9404, PR libstdc++/9701 (partial)
	(aka pptr == epptr implies overflow)
	* include/bits/fstream.tcc (_M_allocate_internal_buffer):
	Consistently, _M_out_end points to the end of the buffer just
	created.
	(overflow): Tweak to use _M_out_buf_size().
	(_M_convert_to_external): The role of the old _M_out_end is
	now played by _M_out_lim.
	(_M_really_overflow): Likewise.
	(seekoff): Likewise.
	(setbuf): _M_out_end points to the end of the external buffer.
	* include/bits/sstream.tcc (overflow): Rewrote, taking into
	account the resolution of DR 169 (TC).
	(seekoff): Use _M_string.capacity(); ios_base::end is now _M_out_lim.
	(seekpos): Use _M_string.capacity(); tweak.
	* include/bits/streambuf.tcc (sputc, xsputn): Remove comments.
	* include/std/std_fstream.h (sync): The role of the old
	_M_out_end is now played by _M_out_lim.
	(_M_set_indeterminate): Use _M_set_determinate.
	(_M_set_determinate): _M_out_end is now _M_out_lim.
	(_M_is_indeterminate): Likewise.
	* include/std/std_sstream.h (str()): _M_out_end is now _M_out_lim.
	(_M_stringbuf_init): Don't set _M_buf_size, unused for sstreams,
	which have the information readily available as _M_string.capacity();
	for ate and app modes, pass the string size to _M_really_sync.
	(_M_really_sync): Consistently set _M_out_end and _M_out_lim, to
	point to the end of the buffer (i.e., epptr) and to the string end,
	respectively.
	* include/std/std_streambuf.h: tweak comments, add _M_out_lim,
	which points to the right limit of the used put area.
	(_M_out_cur_move): The role of the old _M_out_end is now played
	by _M_out_lim.
	(_M_out_buf_size): Simplify: now (when _M_out_cur) return simply
	_M_out_end  - _M_out_cur (i.e., pptr), _very_ close to the letter
	of the standard.
	(basic_streambuf()): Initialize _M_out_lim too.
	* testsuite/27_io/filebuf_virtuals.cc (test10): Trivial tweak.
	* testsuite/27_io/filebuf_virtuals.cc (test11): Add.
 	* testsuite/27_io/stringbuf_virtuals.cc (test09): Add.

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r63367
2003-02-24 18:22:58 +00:00
Benjamin Kosnik
2e812a0a41 ios_base_storage.cc (main): Call set_memory_limits.
2003-02-24  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ios_base_storage.cc (main): Call
	set_memory_limits.

From-SVN: r63366
2003-02-24 18:14:20 +00:00
Tom Tromey
d99c7b11c5 ClassLoader.java (defineClass(byte[],int,int)): Deprecate.
* java/lang/ClassLoader.java (defineClass(byte[],int,int)):
	Deprecate.
	* java/lang/Thread.java (resume): Deprecate.
	* java/io/ByteArrayOutputStream.java (toString(int)): Fixed typo
	in @deprecated.

From-SVN: r63364
2003-02-24 16:47:58 +00:00
Kriang Lerdsuwanakij
9e236a9d66 re PR c++/9602 (Total confusion about template/friend/virtual/abstract)
PR c++/9602
	* typeck2.c (abstract_virtuals_error): Don't check when
	TYPE is still template parameter dependent.

	* g++.dg/template/friend16.C: New test.

From-SVN: r63362
2003-02-24 15:47:24 +00:00
Roger Sayle
44ee6e9e62 gcc.c (do_spec_1): Handle pending argument upon return from handle_braces in "%{...}".
* gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
	from handle_braces in "%{...}".

From-SVN: r63357
2003-02-24 14:52:42 +00:00