OpenCores
URL https://opencores.org/ocsvn/thor/thor/trunk

Subversion Repositories thor

[/] [thor/] [trunk/] [FT64v5/] [software/] [AS64/] [source/] [a64.h] - Blame information for rev 55

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 robfinch
// ============================================================================
2
//        __
3
//   \\__/ o\    (C) 2018  Robert Finch, Stratford
4
//    \  __ /    All rights reserved.
5
//     \/_//     robfinch<remove>@finitron.ca
6
//       ||
7
//
8
// AS64 - Assembler
9
//  - 64 bit CPU
10
//
11
// This source file is free software: you can redistribute it and/or modify 
12
// it under the terms of the GNU Lesser General Public License as published 
13
// by the Free Software Foundation, either version 3 of the License, or     
14
// (at your option) any later version.                                      
15
//                                                                          
16
// This source file is distributed in the hope that it will be useful,      
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of           
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            
19
// GNU General Public License for more details.                             
20
//                                                                          
21
// You should have received a copy of the GNU General Public License        
22
// along with this program.  If not, see <http://www.gnu.org/licenses/>.    
23
//                                                                          
24
// ============================================================================
25
//
26
#ifndef A64_H
27
#define A64_H
28
 
29
#include <Windows.h>
30
#include "token.h"
31
#include "elf.hpp"
32
#include "NameTable.hpp"
33
#include "symbol.h"
34
#include "ht.h"
35
 
36
enum {
37
    codeseg = 0,
38
    rodataseg = 1,
39
    dataseg = 2,
40
    bssseg = 3,
41
    tlsseg = 4,
42
    stackseg = 5,
43
    constseg = 6,
44
};
45
 
46
extern int rel_out;
47
extern int code_bits;
48
extern int data_bits;
49
extern FILE *ofp, *vfp;
50
extern int64_t program_address;
51
extern int64_t start_address;
52
extern char first_org;
53
extern int bGen;
54
extern char fSeg;
55
extern int segment;
56
extern int segmodel;
57
extern SHashTbl HashInfo;
58
 
59 54 robfinch
extern FilenameStack fns;
60
extern std::string mname;
61 48 robfinch
extern int gCpu;
62
extern char lastid[500];
63 54 robfinch
extern char laststr[500];
64 48 robfinch
extern char current_label[500];
65
extern Int128 last_icon;
66
extern Int128 ival;
67
extern char *inptr;
68
extern char *stptr;
69
extern int lineno;
70
extern int64_t code_address;
71
extern int8_t code_bit_ndx;
72
extern int64_t bss_address;
73
extern int64_t data_address;
74
extern int segprefix;
75 54 robfinch
extern int masterFileLength;
76
extern char *masterFile;
77 48 robfinch
extern uint8_t binfile[10000000];
78
extern int binndx;
79
extern int64_t binstart;
80
extern int8_t bitstart;
81
extern NameTable nmTable;
82
extern float num_bytes;
83
extern int num_insns;
84
extern int num_cinsns;
85
 
86
extern void doif();
87
extern int64_t expr();
88
extern Int128 expr128();
89
void Table888_processMaster();
90
extern void emitCode(int cd);
91
extern void emitByte(int64_t cd);
92
extern void emitChar(int64_t cd);
93
extern void emitHalf(int64_t cd);
94
extern void emitWord(int64_t cd);
95
extern void process_align();
96
extern void process_db();
97
extern void process_dc();
98
extern void process_dd();
99
extern void process_dh();
100
extern void process_dh_htbl();
101
extern void process_dw();
102
extern void process_fill();
103
extern void process_extern();
104
extern void process_org();
105
extern void process_code();
106
extern void process_data(int);
107
extern void process_public();
108
extern void process_label();
109
extern void process_hint();
110
extern void bump_address();
111
extern int getIdentifier();
112
extern bool IsNBit(int64_t val, int64_t n);
113
 
114
extern int NumSections;
115
extern clsElf64Section sections[12];
116
extern SYM *lastsym;
117
 
118
extern HTBLE hTable[100000];
119
extern int processOpt;
120
extern int expandedBlock;
121
extern int gCanCompress;
122
extern int expand_flag;
123
extern int compress_flag;
124
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.