From Martin Thuresson <martint@google.com>
[gcc.git] / gcc / target.def
index ec359d245fbb7b4c6143e5467a74cc92e01f5a89..10013e643d32fcf2081e592ae9e3a442d464e3c2 100644 (file)
@@ -150,7 +150,7 @@ DEFHOOK
 (unwind_emit,
  "",
  void, (FILE *stream, rtx insn),
default_unwind_emit)
NULL)
 
 /* Output an internal label.  */
 DEFHOOK
@@ -404,6 +404,17 @@ DEFHOOK
  void, (FILE *f),
  NULL)
 
+DEFHOOK
+(output_source_filename,
+ "Output COFF information or DWARF debugging information which indicates\
+ that filename @var{name} is the current source file to the stdio\
+ stream @var{file}.\n\
+ \n\
+ This target hook need not be defined if the standard form of output\
+ for the file format in use is appropriate.",
+ void ,(FILE *file, const char *name),
+ default_asm_output_source_filename)
+
 /* ??? The TARGET_PRINT_OPERAND* hooks are part of the asm_out struct,
    even though that is not reflected in the macro name to override their
    initializers.  */
@@ -411,9 +422,8 @@ DEFHOOK
 #define HOOK_PREFIX "TARGET_"
 
 /* Emit a machine-specific insn operand.  */
-/* ??? Documenting the argument types for this hook requires a GFDL
-   license grant.  Also, the documentation documents this as a macro,
-   not a hook, and uses a different name for the hook argument FILE.  */
+/* ??? tm.texi only documents the old macro PRINT_OPERAND,
+   not this  hook, and uses a different name for the argument FILE.  */
 DEFHOOK_UNDOC
 (print_operand,
  "",
@@ -421,9 +431,8 @@ DEFHOOK_UNDOC
  default_print_operand)
 
 /* Emit a machine-specific memory address.  */
-/* ??? Documenting the argument types for this hook requires a GFDL
-   license grant.  Also, the documentation documents this as a macro,
-   not a hook, and uses different hook argument names.  */
+/* ??? tm.texi only documents the old macro PRINT_OPERAND_ADDRESS,
+   not this  hook, and uses different argument names.  */
 DEFHOOK_UNDOC
 (print_operand_address,
  "",
@@ -432,9 +441,8 @@ DEFHOOK_UNDOC
 
 /* Determine whether CODE is a valid punctuation character for the
    `print_operand' hook.  */
-/* ??? Documenting the argument types for this hook requires a GFDL
-   license grant.  Also, the documentation documents this as a macro,
-   not a hook.  */
+/* ??? tm.texi only documents the old macro PRINT_OPERAND_PUNCT_VALID_P,
+   not this  hook.  */
 DEFHOOK_UNDOC
 (print_operand_punct_valid_p,
  "",
@@ -599,13 +607,11 @@ DEFHOOK
    verbose level of the debugging output.  The forth and the fifth
    parameter values are correspondingly processor cycle on which
    the previous insn has been issued and the current processor cycle.  */
-/* ??? The documentation uses different names for dump_file,
-   last_sched_cycle and cur_cycle.  */
-DEFHOOK_UNDOC
+DEFHOOK
 (dfa_new_cycle,
  "",
- int, (FILE *dump_file, int verbose, rtx insn, int last_sched_cycle,
-       int cur_cycle, int *sort_p),
+ int, (FILE *dump, int verbose, rtx insn, int last_clock,
+       int clock, int *sort_p),
  NULL)
 
 /* The following member value is a pointer to a function called by the
@@ -794,11 +800,13 @@ DEFHOOK
  "",
  tree, (tree x), NULL)
 
-/* Cost of different vector/scalar statements in vectorization cost model.  */
+/* Cost of different vector/scalar statements in vectorization cost
+   model. In case of misaligned vector loads and stores the cost depends
+   on the data type and misalignment value.  */
 DEFHOOK
 (builtin_vectorization_cost,
  "",
- int, (enum vect_cost_for_stmt type_of_cost),
+ int, (enum vect_cost_for_stmt type_of_cost, tree vectype, int misalign),
  default_builtin_vectorization_cost)
 
 /* Return true if vector alignment is reachable (by peeling N
@@ -1030,12 +1038,10 @@ DEFHOOK
    implement a crude form of function overloading.  The result is a
    complete expression that implements the operation.  PARAMS really
    has type VEC(tree,gc)*, but we don't want to include tree.h here.  */
- /* ??? params is called differently in the documentation, and we can't
-    fix that because of GPL / GFDL incompatibility.  */
-DEFHOOK_UNDOC
+DEFHOOK
 (resolve_overloaded_builtin,
  "",
- tree, (unsigned int /*location_t*/ loc, tree fndecl, void *params), NULL)
+ tree, (unsigned int /*location_t*/ loc, tree fndecl, void *arglist), NULL)
 
 /* Fold a target-specific builtin.  */
 DEFHOOK
@@ -1090,7 +1096,7 @@ DEFHOOK
 DEFHOOK
 (branch_target_register_class,
  "",
enum reg_class, (void),
reg_class_t, (void),
  default_branch_target_register_class)
 
 /* Return true if branch target register optimizations should include
@@ -1223,6 +1229,15 @@ DEFHOOK
  bool, (const_tree exp),
  default_binds_local_p)
 
+/* Check if profiling code is before or after prologue.  */
+DEFHOOK
+(profile_before_prologue,
+ "It returns true if target wants profile code emitted before prologue.\n\n\
+The default version of this hook use the target macro\n\
+@code{PROFILE_BEFORE_PROLOGUE}.",
+ bool, (void),
+ default_profile_before_prologue)
+
 /* Modify and return the identifier of a DECL's external name,
    originally identified by ID, as required by the target,
    (eg, append @nn to windows32 stdcall function names).
@@ -1369,7 +1384,7 @@ DEFHOOK
 DEFHOOK
 (register_move_cost,
  "",
- int, (enum machine_mode mode, enum reg_class from, enum reg_class to),
+ int, (enum machine_mode mode, reg_class_t from, reg_class_t to),
  default_register_move_cost)
 
 /* Compute cost of moving registers to/from memory.  */
@@ -1378,7 +1393,7 @@ DEFHOOK
 DEFHOOK
 (memory_move_cost,
  "",
- int, (enum machine_mode mode, enum reg_class rclass, bool in),
+ int, (enum machine_mode mode, reg_class_t rclass, bool in),
  default_memory_move_cost)
 
 /* True for MODE if the target expects that registers in this mode will
@@ -1676,8 +1691,7 @@ DEFHOOK
 /* Return true if a parameter must be passed by reference.  TYPE may
    be null if this is a libcall.  CA may be null if this query is
    from __builtin_va_arg.  */
-/* ??? The documentation disagrees on the type of 'type'.  */
-DEFHOOK_UNDOC
+DEFHOOK
 (pass_by_reference,
  "",
  bool,
@@ -1869,7 +1883,7 @@ DEFHOOK
    pops on returning, or 0 if the function pops no arguments and the
    caller must therefore pop them all after the function returns.  */
 /* ??? tm.texi has no types for the parameters.  */
-DEFHOOK_UNDOC
+DEFHOOK
 (return_pops_args,
  "",
  int, (tree fundecl, tree funtype, int size),
@@ -1939,15 +1953,15 @@ DEFHOOK
 DEFHOOK
 (ira_cover_classes,
  "",
- const enum reg_class *, (void),
+ const reg_class_t *, (void),
  default_ira_cover_classes)
 
 /* Return the class for a secondary reload, and fill in extra information.  */
 DEFHOOK
 (secondary_reload,
  "",
enum reg_class,
- (bool in_p, rtx x, enum reg_class reload_class, enum machine_mode reload_mode,
reg_class_t,
+ (bool in_p, rtx x, reg_class_t reload_class, enum machine_mode reload_mode,
   secondary_reload_info *sri),
  default_secondary_reload)
 
@@ -2231,8 +2245,8 @@ DEFHOOK
    change the state if the options are valid.  If the first argument is
    NULL, the second argument specifies the default options to use.  Return
    true if the options are valid, and set the current state.  */
-/* ??? The documentation disagrees on the signature of this hook.  */
-DEFHOOK_UNDOC
+/* ??? The documentation in tm.texi is incomplete.  */
+DEFHOOK
 (pragma_parse,
  "",
  bool, (tree args, tree pop_target),
@@ -2343,6 +2357,13 @@ DEFHOOKPOD
  "",
  bool, false)
 
+DEFHOOKPOD
+(want_debug_pub_sections,
+ "True if the @code{.debug_pubtypes} and @code{.debug_pubnames} sections\
+ should be emitted.  These sections are not used on most platforms, and\
+ in particular GDB does not use them.",
+ bool, false)
+
 /* Leave the boolean fields at the end.  */
 
 /* Empty macro arguments are undefined in C90, so use an empty macro.  */