summaryrefslogtreecommitdiff
path: root/masm/masm.h
blob: 75a63f8040046ebcd30e7f0bca509e1cefc74274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Copyright (c) 2024 Freya Murphy */

#ifndef __MASM_H__
#define __MASM_H__

// isa to asemble for
enum isa {
	ISA_MIPS1, // a.k.a mipsR2000
	ISA_MIPS32R2,
	ISA_MIPS32R6,
};

// abi to mark output object
enum abi {
	ABI_O32, // mips o32 abi
	ABI_NONE, // no flag output
};

// format for the object file
enum format {
	FORMAT_ELF32,
};

// defines arguments
struct arguments {
	// files to read from and
	// write to
	char *in_file;
	char *out_file;

	// if undefined symbols should
	// be treated as extern
	bool extern_undefined;

	// isa to assemble for
	enum isa isa;

	// abi to mark object
	enum abi abi;

	// format to output
	enum format format;
};

#endif /* __ASM_H__ */