David Edelsohn
520308bcb8
rs6000.md (andsi3): Add attribute "compare" for andi./andis.
...
* config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
andi./andis.
(anddi3): Same.
From-SVN: r89002
2004-10-13 18:20:24 -04:00
Tom Tromey
090359d60e
* doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
...
From-SVN: r89001
2004-10-13 20:53:43 +00:00
Dale Johannesen
2f59e40ed6
extend.texi (Extended Asm): Rewrite asm volatile description.
...
2004-10-13 Dale Johannesen <dalej@apple.com>
* doc/extend.texi (Extended Asm): Rewrite asm volatile description.
From-SVN: r88999
2004-10-13 19:14:44 +00:00
Frank Ch. Eigler
ddfabf89bb
configure.ac: Check for more headers, functions.
...
2004-10-12 Frank Ch. Eigler <fche@redhat.com>
* configure.ac: Check for more headers, functions.
* mf-hooks2.c (mkbuffer, unmkbuffer): New helper functions for
tracking overridden FILE buffers.
(fopen, setvbuf): New/revised hook functions for buffer overriding.
(setbuf,setlinebuf,fdopen,freopen,fopen64,freopen64,fclose): Ditto.
(fflush): Accept given NULL stream (means "all streams").
* mf-runtime.h.in:
* mf-runtime.c (__mfu_check): Accept accesses that span adjacent
HEAP/GUESS objects.
(LOOKUP_CACHE_SIZE_MAX): Raise to 64K entries tentatively.
(__mf_adapt_cache): Use them all.
* testsuite/libmudflap.c/pass35-frag.c: Update warning message.
* testsuite/libmudflap.c++/ctors.exp: Ditto.
* testsuite/libmudflap.c/{pass51,pass52}-frag.c: New tests.
* configure, config.h.in: Regenerated.
From-SVN: r88996
2004-10-13 18:27:16 +00:00
Frank Ch. Eigler
ccab73c3b7
toplev.c (compile_file): Call mudflap_finish_file from here ...
...
2004-10-13 Frank Ch. Eigler <fche@redhat.com>
* toplev.c (compile_file): Call mudflap_finish_file from here ...
* c-decl.c (c_write_global_declarations): ... instead of here ...
* cp/decl.c (cp_finish_file): ... and here.
* tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
From-SVN: r88995
2004-10-13 18:18:18 +00:00
Andrew Pinski
163075a027
tree-ssa-dom.c (record_range): Free the element if we are not going to use it.
...
2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-dom.c (record_range): Free the element if we are not
going to use it.
From-SVN: r88994
2004-10-13 10:27:31 -07:00
Kazuhiro Inaoka
a472e9d4e6
Makefile.am: Add m32r support.
...
* Makefile.am: Add m32r support.
* configure.ac: Likewise.
* Makefile.in: Regenerate.
* confiugre: Regenerate.
* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
(uint64, sint64, double, longdouble)
* src/m32r: New directory.
* src/m32r/ffi.c: New file.
* src/m32r/sysv.S: Likewise.
* src/m32r/ffitarget.h: Likewise.
From-SVN: r88993
2004-10-13 17:20:24 +00:00
Andrew Pinski
bcd46a7c65
re PR c++/17661 (ICE in create_tmp_var)
...
2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17661
* testsuite/g++.dg/expr/for2.C: New test.
2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/17661
* semantics.c (finish_for_expr): Convert expression to void
so that we don't create temporaries for a?b:c.
From-SVN: r88992
2004-10-13 10:18:16 -07:00
Tom Tromey
38467a0deb
re PR java/15578 (gcj doesn't support -extdirs)
...
PR java/15578:
* lang.opt (--extdirs): Document.
* jvspec.c (lang_specific_driver): Recognize -encoding and
-extdirs.
From-SVN: r88991
2004-10-13 17:04:57 +00:00
Tom Tromey
e89f282171
re PR java/15578 (gcj doesn't support -extdirs)
...
PR java/15578:
* gcc.c (option_map): Added --extdirs and --encoding.
From-SVN: r88990
2004-10-13 17:03:56 +00:00
Eric Botcazou
65e71cd635
Fix incomplete commit.
...
From-SVN: r88986
2004-10-13 14:09:05 +00:00
Eric Botcazou
b9bf58e5fa
re PR target/14454 (virtual function with vararg won't compile)
...
PR target/14454
* config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
sparc_can_output_mi_thunk.
(sparc_output_mi_thunk): Simplify handling of delta offset. Add
handling of vcall offset.
(sparc_can_output_mi_thunk): New predicate.
* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
* config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
* config/sparc/sparc.md (movdi): Remove redundant test.
From-SVN: r88985
2004-10-13 14:04:32 +00:00
Paolo Bonzini
2a10039cc9
tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL, TDF_IPA from -fdump-tree-*-all.
...
2004-10-13 Paolo Bonzini <bonzini@gnu.org>
* tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
TDF_IPA from -fdump-tree-*-all.
From-SVN: r88984
2004-10-13 13:48:16 +00:00
Paul Brook
fe01343558
arm-protos.h (arm_load_pic_register): Update prototype.
...
* config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
* config/arm/arm.c (thumb_find_work_register): Update comments.
(arm_load_pic_register): Add argument for scratch register.
(arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
* config/arm/arm.md (builtin_setjmp_receiver): Ditto.
From-SVN: r88982
2004-10-13 12:48:03 +00:00
Kazu Hirata
f0ec2b9a29
* search.c: Fix a comment typo.
...
From-SVN: r88981
2004-10-13 12:02:25 +00:00
Kazu Hirata
50300b4cc4
* tree-data-ref.c: Fix comment typos.
...
From-SVN: r88980
2004-10-13 11:58:10 +00:00
Jakub Jelinek
69d4980288
re PR tree-optimization/17724 (wrong dominator (eh/fold all builtins) related)
...
PR tree-optimization/17724
* tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
* g++.dg/opt/pr17724-1.C: New test.
* g++.dg/opt/pr17724-2.C: New test.
* g++.dg/opt/pr17724-3.C: New test.
* g++.dg/opt/pr17724-4.C: New test.
* g++.dg/opt/pr17724-5.C: New test.
* g++.dg/opt/pr17724-6.C: New test.
Co-Authored-By: Zdenek Dvorak <dvorakz@suse.cz>
From-SVN: r88979
2004-10-13 13:27:01 +02:00
Dorit Naishlos
13c62176e5
rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
...
2004-10-13 Dorit Naishlos <dorit@il.ibm.com>
* rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
(altivec_builtin_mask_for_store): Likewise.
(altivec_init_builtins): Use lang_hooks.builtin_function to
create the decls for builtin_altivec_mask_for_load/store.
From-SVN: r88978
2004-10-13 11:04:24 +00:00
Nick Clifton
1ce3d58afa
Remove inclusion of loop.h
...
From-SVN: r88977
2004-10-13 10:50:30 +00:00
Kazuhiro Inaoka
66c0e3b596
Add support for M32R
...
From-SVN: r88976
2004-10-13 10:34:21 +00:00
Paolo Carlini
cbb0dcef12
basic_string.tcc (_S_create): Use consistently the exponential policy, simplify.
...
2004-10-13 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.tcc (_S_create): Use consistently
the exponential policy, simplify.
* testsuite/performance/21_strings/string_append_2.cc: New.
* include/ext/array_allocator.h (allocate): Fix bad_alloc check.
* testsuite/ext/array_allocator/2.cc: Fix wrt 64-bit archs (in
that case sizeof(_Rep) == 24).
From-SVN: r88972
2004-10-13 08:58:41 +00:00
Ben Elliston
f76ccf602e
basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
...
* basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
(ei_container): New; renamed.
(ei_start, ei_last): New macros.
(ei_start_1, ei_last_1): Renamed from ei_start.
(ei_last_1, ei_end_p): Use ei_container() where applicable.
(ei_one_before_end_p, ei_next, ei_edge): Likewise.
* gcse.c (remove_reachable_equiv_notes): Use ei_container().
From-SVN: r88966
2004-10-13 14:33:28 +10:00
Sebastian Pop
86df10e35e
Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
...
2004-10-11 Sebastian Pop <pop@cri.ensmp.fr>
* Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
* cfgloop.c (initialize_loops_parallel_p): New.
(flow_loops_find): Initialize the parallel_p field to true for all
the loops.
* tree-ssa-loop-niter.c: Include "tree-data-ref.h".
(estimate_numbers_of_iterations_loop): Infers the loop bounds from
the size of the data accessed in the loop.
(struct nb_iter_bound): Moved...
* cfgloop.h (struct nb_iter_bound): ... here.
(estimated_nb_iterations, parallel_p): New fields in struct loop.
(record_estimate): Declare extern here.
* tree-chrec.c: Fix comments.
(nb_vars_in_chrec): New function.
* tree-chrec.h (nb_vars_in_chrec): Declared here.
* tree-data-ref.c: Don't include lambda.h, that is already included
in tree-data-ref.h.
(tree_fold_divides_p): Don't check for integer_onep.
(tree_fold_bezout): Removed.
(gcd): New static duplicated function.
(int_divides_p, dump_subscript): New.
(dump_data_dependence_relation): Use dump_subscript.
(dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
estimate_niter_from_size_of_data): New.
(analyze_array_indexes, analyze_array): Call
estimate_niter_from_size_of_data during the detection of array
references. Pass in a pointer to the statement that contains the
array reference.
(all_chrecs_equal_p): New.
(compute_distance_vector): Renamed compute_subscript_distance.
Deal with multivariate conflict functions.
(initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
(non_affine_dependence_relation): New.
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
analyze_siv_subscript, analyze_miv_subscript,
analyze_overlapping_iterations, subscript_dependence_tester):
Initialize and return last_conflicts function.
(initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
compute_overlap_steps_for_affine_1_2): New.
(analyze_siv_subscript_affine_cst): Removed.
(analyze_subscript_affine_affine): Disprove dependences based on the
iteration domains. Solve the univariate dependence case as before,
but use lambda_matrix_right_hermite instead of tree_fold_bezout.
Implement the multivariate case of 2 versus 1 variables.
(build_classic_dist_vector, build_classic_dir_vector): Implement some
unhandled cases.
(find_data_references_in_loop): Compute and initialize
loop->estimated_nb_iterations and loop->parallel_p.
(analyze_all_data_dependences): Modify the debug dump order.
* tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
(SUB_LAST_CONFLICT, subscript->last_conflict,
data_dependence_relation->affine_p, data_dependence_relation->size_vect,
DDR_AFFINE_P, DDR_SIZE_VECT): New.
(find_data_references_in_loop, initialize_data_dependence_relation,
dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
From-SVN: r88965
2004-10-13 03:48:03 +00:00
Kelley Cook
06c3418c6c
configure: Regenerate.
...
2004-10-12 Kelley Cook <kcook@gcc.gnu.org>
* configure: Regenerate.
From-SVN: r88962
2004-10-13 00:55:22 +00:00
GCC Administrator
76c1875c9d
Daily bump.
...
[[Split portion of a mixed commit.]]
From-SVN: r88960.2
2004-10-13 00:16:45 +00:00
GCC Administrator
194dd0a1ca
Daily bump.
...
[[Split portion of a mixed commit.]]
From-SVN: r88958.2
2004-10-13 00:16:40 +00:00
Paolo Carlini
a3186d4e60
[multiple changes]
...
2004-10-12 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/17948
* include/bits/stl_tree.h (erase(iterator, iterator)): Revert
wrong commit of 2004-10-07.
2004-10-12 Scott Snyder <snyder@fnal.gov>
PR libstdc++/17948
* testsuite/23_containers/set/modifiers/17948.cc: New.
From-SVN: r88956
2004-10-13 00:11:14 +00:00
Kelley Cook
c8e6cd4166
configure.in (*-*-cygwin*): Supress warning if newlib not present.
...
2004-10-12 Kelley Cook <kcook@gcc.gnu.org>
* configure.in (*-*-cygwin*): Supress warning if newlib not present.
* configure: Regenerate.
From-SVN: r88954
2004-10-12 22:49:34 +00:00
Fariborz Jahanian
661fc48614
Restored acciddental check-in.
...
From-SVN: r88951
2004-10-12 20:51:50 +00:00
Fariborz Jahanian
01d8c00bfc
re PR tree-optimization/17892 (gcc-4.0 should not reassociate floating point add or multiplication)
...
PR 17892.
OKed by Roger Sayle.
From-SVN: r88950
2004-10-12 20:50:08 +00:00
Ulrich Weigand
967af719d2
s390.c (s390_va_start): Use build_va_arg_indirect_ref.
...
* config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
(s390_gimplify_va_arg): Likewise.
From-SVN: r88949
2004-10-12 20:37:15 +00:00
Daniel Jacobowitz
888d2cd6b5
* defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
...
(MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
(REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
* regclass.c (record_address_regs): Remove ifdef. Use
REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
* regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
definition.
(scan_rtx_address, replace_oldest_value_addr): Use
REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
* reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
unnecessary definitions.
(find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
and MODE_BASE_REG_REG_CLASS.
* config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
(MODE_BASE_REG_REG_CLASS): Define.
(REGNO_MODE_OK_FOR_REG_BASE_P): Define.
(REG_MODE_OK_FOR_REG_BASE_P): Define.
* doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
From-SVN: r88948
2004-10-12 19:28:56 +00:00
Daniel Berlin
3d4818fd4d
The apostrophe was there to signal that the s was coming
...
From-SVN: r88946
2004-10-12 18:31:42 +00:00
Daniel Berlin
7dcdacadb2
tree-ssa-alias.c (verify_name_tags): New function.
...
2004-10-12 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (verify_name_tags): New function.
(verify_flow_sensitive_alias_info): Remove code that used to check name tags.
(verify_alias_info): Call verify_name_tags.
From-SVN: r88945
2004-10-12 18:24:45 +00:00
Kazu Hirata
c271ba7711
re PR rtl-optimization/17931 (andl and testb are not combined)
...
PR rtl-optimization/17931
* config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
ZERO_EXTRACT in it.
From-SVN: r88943
2004-10-12 17:14:42 +00:00
Richard Earnshaw
22de4c3dfc
arm.c (arm_print_operand): Use output_operand_lossage where possible rather than aborting.
...
* arm.c (arm_print_operand): Use output_operand_lossage where possible
rather than aborting.
From-SVN: r88940
2004-10-12 16:43:56 +00:00
Nathan Sidwell
5b94d9dd86
class.c (dfs_modify_vtables): Simplify condition.
...
* class.c (dfs_modify_vtables): Simplify condition. Return
dfs_skip_bases as appropriate.
(modify_all_vtables): Walk in pre-order.
* search.c (dfs_walk_all, dfs_walk_once_r,
dfs_walk_once_accessible_r): Assert post order function never
returns dfs_skip_bases.
From-SVN: r88939
2004-10-12 16:04:24 +00:00
Paul Brook
fa91adc640
config.gcc: Add armv6{k,z,zk}
...
* config.gcc: Add armv6{k,z,zk}
* config/arm/arm-cores.def: Add arm1176 and mpcore.
* config/arm/tune.md: Regenerate.
* config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
Define.
(all_architectures): Add armv6k, armv6z, armv6zk.
* config/arm/lib1funcs.asm: Recognise new arm arcitectures.
* doc/invoke.texi: Document new arch and cpu values.
From-SVN: r88937
2004-10-12 15:38:30 +00:00
Nathan Sidwell
2c2e8978f3
search.c (struct lookup_base_data_s): New.
...
* search.c (struct lookup_base_data_s): New.
(lookup_base_r): Replace with ...
(dfs_lookup_base): ... this.
(lookup_base): Use dfs_walk_all.
From-SVN: r88934
2004-10-12 14:23:39 +00:00
Paul Brook
a370280738
bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to meabi=4.
...
* config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
meabi=4.
[[Split portion of a mixed commit.]]
From-SVN: r88930.2
2004-10-12 14:10:39 +00:00
Paul Brook
b49e92fea2
arm.md (addsi3_cbranch_scratch): Correct constraints.
...
* config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
Handle negative constants.
From-SVN: r88929
2004-10-12 13:56:03 +00:00
Paul Brook
49dee49c62
arm.md (addsi3_cbranch_scratch): Correct constraints.
...
* config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
Handle negative constants.
[[Split portion of a mixed commit.]]
From-SVN: r88928.2
2004-10-12 13:54:06 +00:00
Kazu Hirata
d740dbe7b2
* search.c: Fix comment typos.
...
From-SVN: r88927
2004-10-12 13:24:18 +00:00
Rutger Ovidius
2abb138b79
re PR libgcj/17903 (Incorrect SHA result)
...
2004-10-12 Rutger Ovidius <ovidr@users.sourceforge.net>
PR libgcj/17903:
* testsuite/libjava.lang/md5test.java: New file.
* testsuite/libjava.lang/md5test.out: Likewise.
* testsuite/libjava.lang/shatest.java: Likewise.
* testsuite/libjava.lang/shatest.out: Likewise.
From-SVN: r88922
2004-10-12 12:13:39 +02:00
Joseph Myers
3789b31650
re PR c/17301 (ICE on wrong usage of __builtin_stdarg_start)
...
PR c/17301
* c-typeck.c (convert_arguments): Return error_mark_node if there
are too few arguments.
(build_function_call): Handle error_mark_node return from
convert_arguments.
testsuite:
* gcc.dg/pr17301-2.c: New test.
From-SVN: r88921
2004-10-12 09:32:17 +01:00
Paolo Bonzini
35f06ae466
configure.ac (symbolic_link): Replace with $LN_S.
...
2004-10-06 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (symbolic_link): Replace with $LN_S.
(Assembler/Linker): Hard link from gas and binutils trees.
* aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
* configure: Regenerate.
From-SVN: r88920
2004-10-12 08:22:31 +00:00
Mark Mitchell
db86dd1469
re PR c++/15786 (Bad error message for frequently occuring error.)
...
PR c++/15786
* parser.c (cp_parser_declarator): Add member_p parameter.
(cp_parser_condition): Adjust calls to cp_parser_declarator.
(cp_parser_explicit_instantiation): Likewise.
(cp_parser_init_declarator): Likewise.
(cp_parser_direct_declarator): Add member_p parameter. Do not
parse tentatively when parsing the parameters to a member.
(cp_parser_type_id): Adjust calls to cp_parser_declarator.
(cp_parser_parameter_declaration): Likewise.
(cp_parser_member_declaration): Likewise.
(cp_parser_exception_declaration): Likewise.
PR c++/15876
* g++.dg/parse/error22.C: New test.
From-SVN: r88914
2004-10-12 01:52:19 +00:00
Benjamin Kosnik
5a1e5472f5
re PR libstdc++/17937 (Critical ~__pool troubles)
...
2004-10-11 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/stl_deque.h: Correct for over-long lines.
2004-10-11 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/17937
* include/ext/mt_allocator.h (__pool::_M_destroy): New.
* src/mt_allocator.cc (__pool::~__pool): Change definitions to
_M_destroy.
* acconfig.h: Remove _GLIBCXX_USE___CXA_ATEXIT.
* acinclude.m4 (GLIBCXX_ENABLE_CXA_ATEXIT): Remove.
* configure.ac: Remove call to GLIBCXX_ENABLE_CXA_EXIT.
* configure: Regenerate.
* config/linker-map.gnu: Tweak exports.
* docs/html/ext/mt_allocator.html: Update docs.
* testsuite/ext/mt_allocator/deallocate_global-2.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_global-4.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_global_thread-1.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_global_thread-3.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_local-2.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_local-4.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_local_thread-3.cc: Fix.
* testsuite/ext/mt_allocator/deallocate_local_thread-1.cc: Fix.
From-SVN: r88913
2004-10-12 01:10:39 +00:00
GCC Administrator
e7b5576858
Daily bump.
...
[[Split portion of a mixed commit.]]
From-SVN: r88911.2
2004-10-12 00:16:25 +00:00
GCC Administrator
e79e850400
Daily bump.
...
[[Split portion of a mixed commit.]]
From-SVN: r88910.2
2004-10-12 00:16:20 +00:00