Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
eb3921e8
Commit
eb3921e8
authored
Nov 09, 1999
by
Nick Clifton
Committed by
Nick Clifton
Nov 09, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add prototypes file.
From-SVN: r30460
parent
56e2e762
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
195 additions
and
187 deletions
+195
-187
gcc/ChangeLog
+9
-0
gcc/config/arm/aout.h
+2
-2
gcc/config/arm/arm-protos.h
+155
-0
gcc/config/arm/arm.c
+27
-27
gcc/config/arm/arm.h
+1
-153
gcc/config/arm/pe.h
+1
-5
No files found.
gcc/ChangeLog
View file @
eb3921e8
Tue
Nov
9
16
:
43
:
00
1999
Nick
Clifton
<
nickc
@cygnus
.
com
>
*
config
/
arm
/
arm
-
protos
.
h
:
New
file
:
Prototypes
for
functions
defined
in
arm
.
c
and
pe
.
c
.
*
config
/
arm
/
arm
.
h
:
Fix
compile
time
warnings
.
*
config
/
arm
/
arm
.
c
:
Fix
compile
time
warnings
.
*
config
/
arm
/
pe
.
h
:
Fix
compile
time
warnings
.
*
config
/
arm
/
aout
.
h
:
Fix
compile
time
warnings
.
Tue
Nov
9
14
:
55
:
44
1999
Nick
Clifton
<
nickc
@cygnus
.
com
>
*
config
/
m32r
/
m32r
-
protos
.
h
:
New
file
:
Prototypes
for
functions
...
...
gcc/config/arm/aout.h
View file @
eb3921e8
...
...
@@ -37,8 +37,8 @@ Boston, MA 02111-1307, USA. */
}
#endif
#define ASM_APP_ON ""
#define ASM_APP_OFF ""
#define ASM_APP_ON "
"
#define ASM_APP_OFF "
"
/* Switch to the text or data segment. */
#define TEXT_SECTION_ASM_OP ".text"
...
...
gcc/config/arm/arm-protos.h
0 → 100644
View file @
eb3921e8
/* Prototypes for exported functions defined in arm.c and pe.c
Copyright (C) 1999 Free Software Foundation, Inc.
Contributed by Richard Earnshaw (rearnsha@arm.com)
Minor hacks by Nick Clifton (nickc@cygnus.com)
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
extern
void
arm_expand_prologue
PROTO
((
void
));
extern
void
arm_finalize_pic
PROTO
((
void
));
extern
char
*
arm_output_epilogue
PROTO
((
void
));
extern
void
arm_override_options
PROTO
((
void
));
extern
void
arm_poke_function_name
PROTO
((
FILE
*
,
char
*
));
extern
int
arm_process_pragma
PROTO
((
int
(
*
)(
void
),
void
(
*
)
(
int
),
char
*
));
extern
int
arm_regno_class
PROTO
((
int
));
extern
int
arm_volatile_func
PROTO
((
void
));
extern
int
const_ok_for_arm
PROTO
((
HOST_WIDE_INT
));
extern
void
output_arm_prologue
PROTO
((
FILE
*
,
int
));
extern
void
output_ascii_pseudo_op
PROTO
((
FILE
*
,
unsigned
char
*
,
int
));
extern
void
output_func_epilogue
PROTO
((
int
));
extern
void
output_func_prologue
PROTO
((
FILE
*
,
int
));
extern
int
use_return_insn
PROTO
((
int
));
#if defined AOF_ASSEMBLER
extern
void
aof_add_import
PROTO
((
char
*
));
extern
char
*
aof_data_section
PROTO
((
void
));
extern
void
aof_delete_import
PROTO
((
char
*
));
extern
void
aof_dump_imports
PROTO
((
FILE
*
));
extern
void
aof_dump_pic_table
PROTO
((
FILE
*
));
extern
char
*
aof_text_section
PROTO
((
void
));
#endif
/* AOF_ASSEMBLER */
/* Defined in pe.c */
extern
int
arm_dllexport_name_p
PROTO
((
char
*
));
extern
int
arm_dllimport_name_p
PROTO
((
char
*
));
#define Mmode enum machine_mode
#ifdef TREE_CODE
extern
int
arm_comp_type_attributes
PROTO
((
tree
,
tree
));
extern
int
arm_return_in_memory
PROTO
((
tree
));
extern
int
arm_valid_machine_decl_attribute
PROTO
((
tree
,
tree
,
tree
));
extern
int
arm_valid_type_attribute_p
PROTO
((
tree
,
tree
,
tree
,
tree
));
/* Defined in pe.c */
extern
int
arm_dllexport_p
PROTO
((
tree
));
extern
int
arm_dllimport_p
PROTO
((
tree
));
extern
void
arm_mark_dllexport
PROTO
((
tree
));
extern
void
arm_mark_dllimport
PROTO
((
tree
));
extern
void
arm_pe_encode_section_info
PROTO
((
tree
));
extern
tree
arm_pe_merge_machine_decl_attributes
PROTO
((
tree
,
tree
));
extern
void
arm_pe_unique_section
PROTO
((
tree
,
int
));
extern
int
arm_pe_valid_machine_decl_attribute
PROTO
((
tree
,
tree
,
tree
,
tree
));
#endif
#ifdef RTX_CODE
extern
int
adjacent_mem_locations
PROTO
((
rtx
,
rtx
));
extern
char
*
arithmetic_instr
PROTO
((
rtx
,
int
));
extern
int
arm_adjust_cost
PROTO
((
rtx
,
rtx
,
rtx
,
int
));
extern
RTX_CODE
arm_canonicalize_comparison
PROTO
((
RTX_CODE
,
rtx
*
));
extern
int
arm_debugger_arg_offset
PROTO
((
int
,
rtx
));
extern
void
arm_final_prescan_insn
PROTO
((
rtx
));
extern
rtx
arm_gen_load_multiple
PROTO
((
int
,
int
,
rtx
,
int
,
int
,
int
,
int
,
int
));
extern
int
arm_gen_movstrqi
PROTO
((
rtx
*
));
extern
rtx
arm_gen_store_multiple
PROTO
((
int
,
int
,
rtx
,
int
,
int
,
int
,
int
,
int
));
extern
void
arm_print_operand
PROTO
((
FILE
*
,
rtx
,
int
));
extern
void
arm_reload_in_hi
PROTO
((
rtx
*
));
extern
void
arm_reload_out_hi
PROTO
((
rtx
*
));
extern
void
arm_reorg
PROTO
((
rtx
));
extern
int
arm_rtx_costs
PROTO
((
rtx
,
RTX_CODE
));
extern
Mmode
arm_select_cc_mode
PROTO
((
RTX_CODE
,
rtx
,
rtx
));
extern
int
const_double_rtx_ok_for_fpu
PROTO
((
rtx
));
extern
int
const_ok_for_arm
PROTO
((
HOST_WIDE_INT
));
extern
char
*
emit_ldm_seq
PROTO
((
rtx
*
,
int
));
extern
char
*
emit_stm_seq
PROTO
((
rtx
*
,
int
));
extern
char
*
fp_immediate_constant
PROTO
((
rtx
));
extern
rtx
gen_compare_reg
PROTO
((
RTX_CODE
,
rtx
,
rtx
));
extern
rtx
gen_rotated_half_load
PROTO
((
rtx
));
extern
int
is_pic
PROTO
((
rtx
));
extern
int
label_mentioned_p
PROTO
((
rtx
));
extern
int
legitimate_pic_operand_p
PROTO
((
rtx
));
extern
int
load_multiple_sequence
PROTO
((
rtx
*
,
int
,
int
*
,
int
*
,
HOST_WIDE_INT
*
));
extern
RTX_CODE
minmax_code
PROTO
((
rtx
));
extern
int
neg_const_double_rtx_ok_for_fpu
PROTO
((
rtx
));
extern
char
*
output_add_immediate
PROTO
((
rtx
*
));
extern
char
*
output_call
PROTO
((
rtx
*
));
extern
char
*
output_call_mem
PROTO
((
rtx
*
));
extern
char
*
output_mov_double_arm_from_fpu
PROTO
((
rtx
*
));
extern
char
*
output_mov_double_fpu_from_arm
PROTO
((
rtx
*
));
extern
char
*
output_mov_immediate
PROTO
((
rtx
*
));
extern
char
*
output_mov_long_double_arm_from_arm
PROTO
((
rtx
*
));
extern
char
*
output_mov_long_double_arm_from_fpu
PROTO
((
rtx
*
));
extern
char
*
output_mov_long_double_fpu_from_arm
PROTO
((
rtx
*
));
extern
char
*
output_move_double
PROTO
((
rtx
*
));
extern
char
*
output_return_instruction
PROTO
((
rtx
,
int
,
int
));
extern
int
store_multiple_sequence
PROTO
((
rtx
*
,
int
,
int
*
,
int
*
,
HOST_WIDE_INT
*
));
extern
int
symbol_mentioned_p
PROTO
((
rtx
));
#if defined AOF_ASSEMBLER
extern
rtx
aof_pic_entry
PROTO
((
rtx
));
#endif
/* AOF_ASSEMBLER */
#ifdef HAVE_MACHINE_MODES
extern
int
alignable_memory_operand
PROTO
((
rtx
,
Mmode
));
extern
int
arm_add_operand
PROTO
((
rtx
,
Mmode
));
extern
int
arm_go_if_legitimate_address
PROTO
((
Mmode
,
rtx
));
extern
int
arm_not_operand
PROTO
((
rtx
,
Mmode
));
extern
int
arm_reload_memory_operand
PROTO
((
rtx
,
Mmode
));
extern
int
arm_rhs_operand
PROTO
((
rtx
,
Mmode
));
extern
int
arm_rhsm_operand
PROTO
((
rtx
,
Mmode
));
extern
Mmode
arm_select_cc_mode
PROTO
((
RTX_CODE
,
rtx
,
rtx
));
extern
int
arm_split_constant
PROTO
((
RTX_CODE
,
Mmode
,
HOST_WIDE_INT
,
rtx
,
rtx
,
int
));
extern
int
bad_signed_byte_operand
PROTO
((
rtx
,
Mmode
));
extern
int
cc_register
PROTO
((
rtx
,
Mmode
));
extern
int
const_shift_operand
PROTO
((
rtx
,
Mmode
));
extern
int
di_operand
PROTO
((
rtx
,
Mmode
));
extern
int
dominant_cc_register
PROTO
((
rtx
,
Mmode
));
extern
int
equality_operator
PROTO
((
rtx
,
Mmode
));
extern
int
f_register_operand
PROTO
((
rtx
,
Mmode
));
extern
int
fpu_add_operand
PROTO
((
rtx
,
Mmode
));
extern
int
fpu_rhs_operand
PROTO
((
rtx
,
Mmode
));
extern
int
index_operand
PROTO
((
rtx
,
Mmode
));
extern
rtx
legitimize_pic_address
PROTO
((
rtx
,
Mmode
,
rtx
));
extern
int
load_multiple_operation
PROTO
((
rtx
,
Mmode
));
extern
int
logical_binary_operator
PROTO
((
rtx
,
Mmode
));
extern
int
minmax_operator
PROTO
((
rtx
,
Mmode
));
extern
int
multi_register_push
PROTO
((
rtx
,
Mmode
));
extern
int
nonimmediate_di_operand
PROTO
((
rtx
,
Mmode
));
extern
int
nonimmediate_soft_df_operand
PROTO
((
rtx
,
Mmode
));
extern
int
offsettable_memory_operand
PROTO
((
rtx
,
Mmode
));
extern
int
power_of_two_operand
PROTO
((
rtx
,
Mmode
));
extern
int
reg_or_int_operand
PROTO
((
rtx
,
Mmode
));
extern
int
s_register_operand
PROTO
((
rtx
,
Mmode
));
extern
int
shift_operator
PROTO
((
rtx
,
Mmode
));
extern
int
shiftable_operator
PROTO
((
rtx
,
Mmode
));
extern
int
soft_df_operand
PROTO
((
rtx
,
Mmode
));
extern
int
store_multiple_operation
PROTO
((
rtx
,
Mmode
));
#if defined TREE_CODE
extern
rtx
arm_function_arg
PROTO
((
CUMULATIVE_ARGS
*
,
Mmode
,
tree
,
int
));
extern
void
arm_init_cumulative_args
PROTO
((
CUMULATIVE_ARGS
*
,
tree
,
rtx
,
int
));
#endif
/* TREE_CODE */
#endif
/* HAVE_MACHINE_MODES */
#endif
/* RTX_CODE */
#undef Mmode
gcc/config/arm/arm.c
View file @
eb3921e8
...
...
@@ -40,6 +40,7 @@ Boston, MA 02111-1307, USA. */
#include "toplev.h"
#include "recog.h"
#include "ggc.h"
#include "arm-protos.h"
/* The maximum number of insns skipped which will be conditionalised if
possible. */
...
...
@@ -48,32 +49,32 @@ static int max_insns_skipped = 5;
extern
FILE
*
asm_out_file
;
/* Some function declarations. */
static
HOST_WIDE_INT
int_log2
PROTO
((
HOST_WIDE_INT
));
static
char
*
output_multi_immediate
PROTO
((
rtx
*
,
char
*
,
char
*
,
int
,
HOST_WIDE_INT
));
static
int
arm_gen_constant
PROTO
((
enum
rtx_code
,
enum
machine_mode
,
HOST_WIDE_INT
,
rtx
,
rtx
,
int
,
int
));
static
int
arm_naked_function_p
PROTO
((
tree
));
static
void
init_fpa_table
PROTO
((
void
));
static
enum
machine_mode
select_dominance_cc_mode
PROTO
((
rtx
,
rtx
,
HOST_WIDE_INT
));
static
HOST_WIDE_INT
add_minipool_constant
PROTO
((
rtx
,
enum
machine_mode
));
static
void
dump_minipool
PROTO
((
rtx
));
static
rtx
find_barrier
PROTO
((
rtx
,
int
));
static
void
push_minipool_fix
PROTO
((
rtx
,
int
,
rtx
*
,
enum
machine_mode
,
rtx
));
static
void
push_minipool_barrier
PROTO
((
rtx
,
int
));
static
void
note_invalid_constants
PROTO
((
rtx
,
int
));
static
char
*
fp_const_from_val
PROTO
((
REAL_VALUE_TYPE
*
));
static
int
eliminate_lr2ip
PROTO
((
rtx
*
));
static
char
*
shift_op
PROTO
((
rtx
,
HOST_WIDE_INT
*
));
static
int
pattern_really_clobbers_lr
PROTO
((
rtx
));
static
int
function_really_clobbers_lr
PROTO
((
rtx
));
static
void
emit_multi_reg_push
PROTO
((
int
));
static
void
emit_sfm
PROTO
((
int
,
int
));
#ifndef Mmode
#define Mmode enum machine_mode
#endif
static
HOST_WIDE_INT
int_log2
PROTO
((
HOST_WIDE_INT
));
static
char
*
output_multi_immediate
PROTO
((
rtx
*
,
char
*
,
char
*
,
int
,
HOST_WIDE_INT
));
static
int
arm_gen_constant
PROTO
((
enum
rtx_code
,
Mmode
,
HOST_WIDE_INT
,
rtx
,
rtx
,
int
,
int
));
static
int
arm_naked_function_p
PROTO
((
tree
));
static
void
init_fpa_table
PROTO
((
void
));
static
enum
machine_mode
select_dominance_cc_mode
PROTO
((
rtx
,
rtx
,
HOST_WIDE_INT
));
static
HOST_WIDE_INT
add_minipool_constant
PROTO
((
rtx
,
Mmode
));
static
void
dump_minipool
PROTO
((
rtx
));
static
rtx
find_barrier
PROTO
((
rtx
,
int
));
static
void
push_minipool_fix
PROTO
((
rtx
,
int
,
rtx
*
,
Mmode
,
rtx
));
static
void
push_minipool_barrier
PROTO
((
rtx
,
int
));
static
void
note_invalid_constants
PROTO
((
rtx
,
int
));
static
char
*
fp_const_from_val
PROTO
((
REAL_VALUE_TYPE
*
));
static
int
eliminate_lr2ip
PROTO
((
rtx
*
));
static
char
*
shift_op
PROTO
((
rtx
,
HOST_WIDE_INT
*
));
static
int
pattern_really_clobbers_lr
PROTO
((
rtx
));
static
int
function_really_clobbers_lr
PROTO
((
rtx
));
static
void
emit_multi_reg_push
PROTO
((
int
));
static
void
emit_sfm
PROTO
((
int
,
int
));
static
enum
arm_cond_code
get_arm_condition_code
PROTO
((
rtx
));
static
int
const_ok_for_op
RTX_CODE_PROTO
((
HOST_WIDE_INT
,
R
code
));
static
void
arm_add_gc_roots
PROTO
((
void
));
static
int
const_ok_for_op
PROTO
((
HOST_WIDE_INT
,
enum
rtx_
code
));
static
void
arm_add_gc_roots
PROTO
((
void
));
/* True if we are currently building a constant table. */
int
making_const_table
;
...
...
@@ -5928,8 +5929,7 @@ arm_output_epilogue ()
}
void
output_func_epilogue
(
f
,
frame_size
)
FILE
*
f
ATTRIBUTE_UNUSED
;
output_func_epilogue
(
frame_size
)
int
frame_size
;
{
if
(
use_return_insn
(
FALSE
)
&&
return_used_this_function
...
...
gcc/config/arm/arm.h
View file @
eb3921e8
...
...
@@ -1275,7 +1275,7 @@ enum reg_class
/* Generate the assembly code for function exit. */
#define FUNCTION_EPILOGUE(STREAM, SIZE) \
output_func_epilogue (S
TREAM, S
IZE)
output_func_epilogue (SIZE)
/* Determine if the epilogue should be output as RTL.
You should override this if you define FUNCTION_EXTRA_EPILOGUE. */
...
...
@@ -2200,156 +2200,4 @@ extern struct rtx_def * arm_compare_op1;
when running in 32 bit mode. */
\
((!TARGET_APCS_32) ? (GEN_INT (0x03fffffc)) : (GEN_INT (0xffffffff)))
/* The remainder of this file is only needed for building the compiler
itself, not for the collateral. */
#ifdef HAVE_CONFIG_H
/* Prototypes for functions in arm.c */
#ifdef BUFSIZ
/* stdio.h has been included, ok to use FILE * */
#define STDIO_PROTO(ARGS) PROTO (ARGS)
#else
#define STDIO_PROTO(ARGS) ()
#endif
#ifndef TREE_CODE
union
tree_node
;
#define Tree union tree_node *
#else
#define Tree tree
#endif
#ifndef RTX_CODE
struct
rtx_def
;
#define Rtx struct rtx_def *
#else
#define Rtx rtx
#endif
#ifndef HOST_WIDE_INT
#include "hwint.h"
#endif
#ifndef HAVE_MACHINE_MODES
#include "machmode.h"
#endif
#define Mmode enum machine_mode
#ifdef RTX_CODE
#define RTX_CODE_PROTO(ARGS) PROTO (ARGS)
#else
#define RTX_CODE_PROTO(ARGS) ()
#endif
#define Rcode enum rtx_code
void
arm_override_options
PROTO
((
void
));
int
use_return_insn
PROTO
((
int
));
int
const_ok_for_arm
PROTO
((
HOST_WIDE_INT
));
int
arm_split_constant
RTX_CODE_PROTO
((
Rcode
,
Mmode
,
HOST_WIDE_INT
,
Rtx
,
Rtx
,
int
));
Rcode
arm_canonicalize_comparison
RTX_CODE_PROTO
((
Rcode
,
Rtx
*
));
int
arm_return_in_memory
PROTO
((
Tree
));
int
legitimate_pic_operand_p
PROTO
((
Rtx
));
Rtx
legitimize_pic_address
PROTO
((
Rtx
,
Mmode
,
Rtx
));
int
is_pic
PROTO
((
Rtx
));
void
arm_finalize_pic
PROTO
((
void
));
int
arm_rtx_costs
RTX_CODE_PROTO
((
Rtx
,
Rcode
));
int
arm_adjust_cost
PROTO
((
Rtx
,
Rtx
,
Rtx
,
int
));
int
const_double_rtx_ok_for_fpu
PROTO
((
Rtx
));
int
neg_const_double_rtx_ok_for_fpu
PROTO
((
Rtx
));
int
s_register_operand
PROTO
((
Rtx
,
Mmode
));
int
f_register_operand
PROTO
((
Rtx
,
Mmode
));
int
reg_or_int_operand
PROTO
((
Rtx
,
Mmode
));
int
reload_memory_operand
PROTO
((
Rtx
,
Mmode
));
int
arm_rhs_operand
PROTO
((
Rtx
,
Mmode
));
int
arm_rhsm_operand
PROTO
((
Rtx
,
Mmode
));
int
arm_add_operand
PROTO
((
Rtx
,
Mmode
));
int
arm_not_operand
PROTO
((
Rtx
,
Mmode
));
int
offsettable_memory_operand
PROTO
((
Rtx
,
Mmode
));
int
alignable_memory_operand
PROTO
((
Rtx
,
Mmode
));
int
bad_signed_byte_operand
PROTO
((
Rtx
,
Mmode
));
int
fpu_rhs_operand
PROTO
((
Rtx
,
Mmode
));
int
fpu_add_operand
PROTO
((
Rtx
,
Mmode
));
int
power_of_two_operand
PROTO
((
Rtx
,
Mmode
));
int
di_operand
PROTO
((
Rtx
,
Mmode
));
int
soft_df_operand
PROTO
((
Rtx
,
Mmode
));
int
index_operand
PROTO
((
Rtx
,
Mmode
));
int
const_shift_operand
PROTO
((
Rtx
,
Mmode
));
int
shiftable_operator
PROTO
((
Rtx
,
Mmode
));
int
logical_binary_operator
PROTO
((
Rtx
,
Mmode
));
int
shift_operator
PROTO
((
Rtx
,
Mmode
));
int
equality_operator
PROTO
((
Rtx
,
Mmode
));
int
minmax_operator
PROTO
((
Rtx
,
Mmode
));
int
cc_register
PROTO
((
Rtx
,
Mmode
));
int
dominant_cc_register
PROTO
((
Rtx
,
Mmode
));
int
symbol_mentioned_p
PROTO
((
Rtx
));
int
label_mentioned_p
PROTO
((
Rtx
));
Rcode
minmax_code
PROTO
((
Rtx
));
int
adjacent_mem_locations
PROTO
((
Rtx
,
Rtx
));
int
load_multiple_operation
PROTO
((
Rtx
,
Mmode
));
int
store_multiple_operation
PROTO
((
Rtx
,
Mmode
));
int
load_multiple_sequence
PROTO
((
Rtx
*
,
int
,
int
*
,
int
*
,
HOST_WIDE_INT
*
));
char
*
emit_ldm_seq
PROTO
((
Rtx
*
,
int
));
int
store_multiple_sequence
PROTO
((
Rtx
*
,
int
,
int
*
,
int
*
,
HOST_WIDE_INT
*
));
char
*
emit_stm_seq
PROTO
((
Rtx
*
,
int
));
int
arm_valid_machine_decl_attribute
PROTO
((
Tree
,
Tree
,
Tree
));
Rtx
arm_gen_load_multiple
PROTO
((
int
,
int
,
Rtx
,
int
,
int
,
int
,
int
,
int
));
Rtx
arm_gen_store_multiple
PROTO
((
int
,
int
,
Rtx
,
int
,
int
,
int
,
int
,
int
));
int
arm_gen_movstrqi
PROTO
((
Rtx
*
));
Rtx
gen_rotated_half_load
PROTO
((
Rtx
));
Mmode
arm_select_cc_mode
RTX_CODE_PROTO
((
Rcode
,
Rtx
,
Rtx
));
Rtx
gen_compare_reg
RTX_CODE_PROTO
((
Rcode
,
Rtx
,
Rtx
,
int
));
void
arm_reload_in_hi
PROTO
((
Rtx
*
));
void
arm_reload_out_hi
PROTO
((
Rtx
*
));
void
arm_reorg
PROTO
((
Rtx
));
char
*
fp_immediate_constant
PROTO
((
Rtx
));
void
print_multi_reg
STDIO_PROTO
((
FILE
*
,
char
*
,
int
,
int
));
char
*
output_call
PROTO
((
Rtx
*
));
char
*
output_call_mem
PROTO
((
Rtx
*
));
char
*
output_mov_long_double_fpu_from_arm
PROTO
((
Rtx
*
));
char
*
output_mov_long_double_arm_from_fpu
PROTO
((
Rtx
*
));
char
*
output_mov_long_double_arm_from_arm
PROTO
((
Rtx
*
));
char
*
output_mov_double_fpu_from_arm
PROTO
((
Rtx
*
));
char
*
output_mov_double_arm_from_fpu
PROTO
((
Rtx
*
));
char
*
output_move_double
PROTO
((
Rtx
*
));
char
*
output_mov_immediate
PROTO
((
Rtx
*
));
char
*
output_add_immediate
PROTO
((
Rtx
*
));
char
*
arithmetic_instr
PROTO
((
Rtx
,
int
));
void
output_ascii_pseudo_op
STDIO_PROTO
((
FILE
*
,
unsigned
char
*
,
int
));
char
*
output_return_instruction
PROTO
((
Rtx
,
int
,
int
));
int
arm_volatile_func
PROTO
((
void
));
void
arm_poke_function_name
STDIO_PROTO
((
FILE
*
,
char
*
));
void
output_func_prologue
STDIO_PROTO
((
FILE
*
,
int
));
void
output_func_epilogue
STDIO_PROTO
((
FILE
*
,
int
));
void
arm_expand_prologue
PROTO
((
void
));
char
*
arm_output_epilogue
PROTO
((
void
));
void
arm_print_operand
STDIO_PROTO
((
FILE
*
,
Rtx
,
int
));
void
arm_final_prescan_insn
PROTO
((
Rtx
));
int
short_branch
PROTO
((
int
,
int
));
void
assemble_align
PROTO
((
int
));
/* Used in arm.md, but defined in output.c */
int
multi_register_push
PROTO
((
Rtx
,
Mmode
));
#ifdef AOF_ASSEMBLER
Rtx
aof_pic_entry
PROTO
((
Rtx
));
void
aof_dump_pic_table
STDIO_PROTO
((
FILE
*
));
char
*
aof_text_section
PROTO
((
void
));
char
*
aof_data_section
PROTO
((
void
));
void
aof_add_import
PROTO
((
char
*
));
void
aof_delete_import
PROTO
((
char
*
));
void
aof_dump_imports
STDIO_PROTO
((
FILE
*
));
#endif
/* Define in pe.c */
int
arm_pe_return_in_memory
PROTO
((
Tree
));
int
arm_dllexport_p
PROTO
((
Tree
));
int
arm_dllimport_p
PROTO
((
Tree
));
int
arm_dllexport_name_p
PROTO
((
char
*
));
int
arm_dllimport_name_p
PROTO
((
char
*
));
#endif
/* HAVE_CONFIG_H */
#endif
/* __ARM_H__ */
gcc/config/arm/pe.h
View file @
eb3921e8
...
...
@@ -89,7 +89,6 @@ Boston, MA 02111-1307, USA. */
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
is a valid machine specific attribute for DECL.
The attributes in ATTRIBUTES have previously been assigned to DECL. */
extern
int
arm_pe_valid_machine_decl_attribute
();
#undef VALID_MACHINE_DECL_ATTRIBUTE
#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
arm_pe_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
...
...
@@ -99,12 +98,10 @@ arm_pe_valid_machine_decl_attribute (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
TYPE1 and TYPE2 are incompatible, one if they are compatible,
and two if they are nearly compatible (which causes a warning to be
generated). */
extern int arm_pe_comp_type_attributes ();
#define COMP_TYPE_ATTRIBUTES(TYPE1, TYPE2) \
arm_pe_comp_type_attributes ((TYPE1), (TYPE2))
#endif
extern
union
tree_node
*
arm_pe_merge_machine_decl_attributes
();
#define MERGE_MACHINE_DECL_ATTRIBUTES(OLD, NEW) \
arm_pe_merge_machine_decl_attributes ((OLD), (NEW))
...
...
@@ -115,7 +112,6 @@ arm_pe_merge_machine_decl_attributes ((OLD), (NEW))
This is also needed to implement one-only vtables: they go into their own
section and we need to set DECL_SECTION_NAME so we do that here.
Note that we can be called twice on the same decl. */
extern
void
arm_pe_encode_section_info
();
#undef ENCODE_SECTION_INFO
#define ENCODE_SECTION_INFO(DECL) \
arm_pe_encode_section_info (DECL)
...
...
@@ -149,7 +145,7 @@ arm_pe_encode_section_info (DECL)
#define MULTIPLE_SYMBOL_SPACES
#define UNIQUE_SECTION_P(DECL) DECL_ONE_ONLY (DECL)
extern
void
arm_pe_unique_section
();
#define UNIQUE_SECTION(DECL,RELOC) arm_pe_unique_section (DECL, RELOC)
#define SUPPORTS_ONE_ONLY 1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment