17 {
"GV",
"mutableAddressor" },
20 {
"TF",
"GenericSpec" },
23 {
"Si",
"Swift.Int" },
27 {
"SQ",
"ImplicitlyUnwrappedOptional" },
28 {
"Sc",
"UnicodeScalar" },
32 {
"Bi1",
"Builtin.Int1" },
33 {
"Bp",
"Builtin.RawPointer" },
34 {
"Bw",
"Builtin.Word" },
41 {
"FC",
"ClassFunc" },
45 {
"U__FQ_T_",
"<A>(A)" },
46 {
"ToFC",
"@objc class func" },
47 {
"ToF",
"@objc func" },
57 {
"d",
"destructor" },
58 {
"D",
"deallocator" },
59 {
"c",
"constructor" },
68 while (*
n && *
n >=
'0' && *
n <=
'9') {
74 static const char *
numpos(
const char *
n) {
75 while (*
n && (*n < '0' || *n >
'9')) {
91 static const char *
resolve(
struct Type *t,
const char *
foo,
const char **bar) {
95 for (; t[0].
code; t++) {
108 #define STRCAT_BOUNDS(x) \
109 if (((x) + 2 + strlen(out)) > sizeof(out)) \
112 int i,
len, is_generic = 0;
116 if (!strncmp(
s,
"imp.", 4)) {
119 if (!strncmp(
s,
"reloc.", 6)) {
123 if (*
s !=
'T' && strncmp(
s,
"_T", 2) && strncmp(
s,
"__T", 3)) {
125 if (strncmp(
s,
"$s", 2)) {
130 if (!strncmp(
s,
"__", 2)) {
134 const char *attr =
NULL;
135 const char *attr2 =
NULL;
136 const char *q, *
p =
s;
137 const char *q_end =
p + strlen(
p);
138 const char *q_start =
p;
140 if (strchr(
s,
'\'') || strchr(
s,
' ')) {
146 const char *tail =
NULL;
159 tail =
"..extension";
167 tail =
"..accessor.metadata";
173 tail =
"..metaclass";
176 tail =
"..lazy.metadata";
202 if (
IS_DIGIT(*
p) || *
p ==
'v' || *
p ==
'I' || *
p ==
'o' || *
p ==
'T' || *
p ==
'V' || *
p ==
'M' || *
p ==
'C' || *
p ==
'F' || *
p ==
'W') {
203 if (!strncmp(
p + 1,
"SS", 2)) {
204 strcat(
out,
"Swift.String.init (");
207 if (!strncmp(
p,
"vdv", 3)) {
211 if (!strncmp(
p,
"oFC", 3)) {
212 tail =
"..init.witnesstable";
217 for (
i = 0,
len = 1;
len && q < q_end; q +=
len,
i++) {
226 if (
len == 2 && !strcmp(
str,
"ee")) {
227 strcat(
out,
"Swift");
245 if (!
p && ((*q ==
'U') || (*q ==
'R'))) {
247 if (attr && *q ==
'R') {
260 if (
len < strlen(q)) {
277 if (attr2 && *attr2) {
285 strcat(
out,
" -> ()");
290 for (
i = 0; q && q < q_end && q >= q_start;
i++) {
305 if (!strncmp(q,
"uRxs", 4)) {
322 strcat(
out,
" (self) -> ()");
331 strcat(
out,
"__String");
335 if (q[0] && q[1] && q[2]) {
362 if (!strncmp(q,
"_V", 2)) {
380 if (attr && !strcmp(attr,
"generic")) {
404 if (len < 0 || len > 256) {
408 if (
len <= (q_end - q) && q[
len]) {
412 strcat(
out, is_generic ?
"<" :
"(");
424 strcat(
out, is_generic ?
">" :
")");
425 is_first = (*
s !=
'_');
426 if (is_generic && !is_first) {
455 char *
n = strstr(q,
"__");
const lzma_allocator const uint8_t size_t uint8_t * out
RZ_API void Ht_() free(HtName_(Ht) *ht)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
void * malloc(size_t size)
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode static oldfd struct tms static buf static getgid static geteuid const char static filename static arg static mask struct ustat static ubuf static getppid static setsid static egid sigset_t static set struct timeval struct timezone static tz fd_set fd_set fd_set struct timeval static timeout const char char static bufsiz const char static swapflags void static offset const char static length static mode static who const char struct statfs static buf unsigned unsigned num
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
static struct Type types[]
static struct Type flags[]
static const char * numpos(const char *n)
static char * getstring(const char *s, int len)
char * libdemangle_handler_swift(const char *s)
static const char * getnum(const char *n, int *num)
static const char * resolve(struct Type *t, const char *foo, const char **bar)
static struct Type metas[]