summaryrefslogtreecommitdiff
path: root/vere/ext/nasm/asm/directiv.h
blob: 1911264334be85853d5e5bc0fbc15fe80b2654b2 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
 * This file is generated from ./asm/directiv.dat
 * by perfhash.pl; do not edit.
 */

#ifndef DIRECTIV_H
#define DIRECTIV_H 1

#include "perfhash.h"

enum directive {
    D_none,
    D_unknown,
    D_corrupt,
    D_ABSOLUTE,
    D_BITS,
    D_COMMON,
    D_CPU,
    D_DEBUG,
    D_DEFAULT,
    D_EXTERN,
    D_FLOAT,
    D_GLOBAL,
    D_STATIC,
    D_LIST,
    D_SECTION,
    D_SEGMENT,
    D_WARNING,
    D_SECTALIGN,
    D_PRAGMA,
    D_REQUIRED,
    D_EXPORT,
    D_GROUP,
    D_IMPORT,
    D_LIBRARY,
    D_MAP,
    D_MODULE,
    D_ORG,
    D_OSABI,
    D_SAFESEH,
    D_UPPERCASE,
    D_PREFIX,
    D_SUFFIX,
    D_GPREFIX,
    D_GSUFFIX,
    D_LPREFIX,
    D_LSUFFIX,
    D_LIMIT,
    D_OPTIONS,
    D_SUBSECTIONS_VIA_SYMBOLS,
    D_NO_DEAD_STRIP,
    D_MAXDUMP,
    D_NODEPEND,
    D_NOSECLABELS
};

extern const struct perfect_hash directive_hash;
extern const char * const directive_tbl[40];

static inline enum directive directive_find(const char *str)
{
    return perfhash_find(&directive_hash, str);
}

static inline const char * directive_name(enum directive x)
{
    size_t ix = (size_t)x - (3);
    if (ix >= 40)
        return NULL;
    return directive_tbl[ix];
}

static inline const char * directive_dname(enum directive x)
{
    const char *y = directive_name(x);
    return y ? y : invalid_enum_str(x);
}

#endif /* DIRECTIV_H */