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

Subversion Repositories thor

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

Go to most recent revision | 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
extern int gCpu;
60
extern char lastid[500];
61
extern char current_label[500];
62
extern Int128 last_icon;
63
extern Int128 ival;
64
extern char *inptr;
65
extern char *stptr;
66
extern int lineno;
67
extern int64_t code_address;
68
extern int8_t code_bit_ndx;
69
extern int64_t bss_address;
70
extern int64_t data_address;
71
extern int segprefix;
72
extern char masterFile[10000000];
73
extern uint8_t binfile[10000000];
74
extern int binndx;
75
extern int64_t binstart;
76
extern int8_t bitstart;
77
extern NameTable nmTable;
78
extern float num_bytes;
79
extern int num_insns;
80
extern int num_cinsns;
81
 
82
extern void doif();
83
extern int64_t expr();
84
extern Int128 expr128();
85
void Table888_processMaster();
86
extern void emitCode(int cd);
87
extern void emitByte(int64_t cd);
88
extern void emitChar(int64_t cd);
89
extern void emitHalf(int64_t cd);
90
extern void emitWord(int64_t cd);
91
extern void process_align();
92
extern void process_db();
93
extern void process_dc();
94
extern void process_dd();
95
extern void process_dh();
96
extern void process_dh_htbl();
97
extern void process_dw();
98
extern void process_fill();
99
extern void process_extern();
100
extern void process_org();
101
extern void process_code();
102
extern void process_data(int);
103
extern void process_public();
104
extern void process_label();
105
extern void process_hint();
106
extern void bump_address();
107
extern int getIdentifier();
108
extern bool IsNBit(int64_t val, int64_t n);
109
 
110
extern int NumSections;
111
extern clsElf64Section sections[12];
112
extern SYM *lastsym;
113
 
114
typedef struct _tagHBLE
115
{
116
  int count;
117
  int opcode;
118
} HTBLE;
119
 
120
extern HTBLE hTable[100000];
121
extern int processOpt;
122
extern int expandedBlock;
123
extern int gCanCompress;
124
extern int expand_flag;
125
extern int compress_flag;
126
#endif

powered by: WebSVN 2.1.0

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