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
bebbbdbb
Commit
bebbbdbb
authored
Sep 22, 1993
by
Jan Brittenson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial revision
From-SVN: r5386
parent
76c30596
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
133 additions
and
0 deletions
+133
-0
gcc/bc-emit.h
+133
-0
No files found.
gcc/bc-emit.h
0 → 100644
View file @
bebbbdbb
/* bc-emit.h - declare entry points for producing object files of bytecodes. */
/* Internal format of symbol table for the object file. */
struct
bc_sym
{
/* Private copy separately malloc'd. */
char
*
name
;
/* Symbol has a defined value. */
unsigned
int
defined
:
1
;
/* Symbol has been globalized. */
unsigned
int
global
:
1
;
/* Symbol is common. */
unsigned
int
common
:
1
;
/* Value if defined. */
unsigned
long
int
val
;
/* Used in internal symbol table structure. */
struct
bc_sym
*
next
;
};
/* List of symbols defined in a particular segment. */
struct
bc_segsym
{
struct
bc_sym
*
sym
;
struct
bc_segsym
*
next
;
};
/* List of relocations needed in a particular segment. */
struct
bc_segreloc
{
/* Offset of datum to be relocated. */
unsigned
int
offset
;
/* Symbol to be relocated by. */
struct
bc_sym
*
sym
;
struct
bc_segreloc
*
next
;
};
/* Segment of an object file. */
struct
bc_seg
{
/* Size allocated to contents. */
unsigned
int
alloc
;
/* Pointer to base of contents. */
char
*
data
;
/* Actual size of contents. */
unsigned
int
size
;
/* List of symbols defined in this segment. */
struct
bc_segsym
*
syms
;
/* List of relocations for this segment. */
struct
bc_segreloc
*
relocs
;
};
/* Anonymous bytecode label within a single function. */
struct
bc_label
{
/* Offset of label from start of segment. */
unsigned
int
offset
;
/* True when offset is valid. */
unsigned
int
defined
:
1
;
/* Unique bytecode ID, used to determine innermost
block containment */
int
uid
;
/* Next node in list */
struct
bc_label
*
next
;
};
/* Reference to a bc_label; a list of all such references is kept for
the function, then when it is finished they are backpatched to
contain the correct values. */
struct
bc_labelref
{
/* Label referenced. */
struct
bc_label
*
label
;
/* Code offset of reference. */
unsigned
int
offset
;
/* Next labelref in list */
struct
bc_labelref
*
next
;
};
extern
void
bc_initialize
();
extern
int
bc_begin_function
();
extern
char
*
bc_emit_trampoline
();
extern
void
bc_emit_bytecode
();
extern
void
bc_emit_bytecode_const
();
extern
struct
bc_label
*
bc_get_bytecode_label
();
extern
int
bc_emit_bytecode_labeldef
();
extern
void
bc_emit_bytecode_labelref
();
extern
void
bc_emit_code_labelref
();
extern
char
*
bc_end_function
();
extern
void
bc_align_const
();
extern
void
bc_emit_const
();
extern
void
bc_emit_const_skip
();
extern
int
bc_emit_const_labeldef
();
extern
void
bc_emit_const_labelref
();
extern
void
bc_align_data
();
extern
void
bc_emit_data
();
extern
void
bc_emit_data_skip
();
extern
int
bc_emit_data_labeldef
();
extern
void
bc_emit_data_labelref
();
extern
int
bc_define_pointer
();
extern
int
bc_emit_common
();
extern
void
bc_globalize_label
();
extern
void
bc_text
();
extern
void
bc_data
();
extern
void
bc_align
();
extern
void
bc_emit
();
extern
void
bc_emit_skip
();
extern
int
bc_emit_labeldef
();
extern
void
bc_emit_labelref
();
extern
void
bc_write_file
();
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