Skip to content

Commit

Permalink
enable nVidia backend
Browse files Browse the repository at this point in the history
  • Loading branch information
5HT committed Aug 23, 2024
1 parent 7747e83 commit a441393
Show file tree
Hide file tree
Showing 46 changed files with 16,030 additions and 9 deletions.
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ objects := be.o editor.o \
arch/ppc/ppc_disasm.o \
arch/m68k/dis68k.o \
arch/sh4/sh4.o \
arch/nv/nv.o \
arch/nv/core-as.o arch/nv/ctx.o arch/nv/falcon.o arch/nv/gk110.o arch/nv/macro.o arch/nv/vp1.o arch/nv/hash.o \
arch/nv/envyas.o arch/nv/g80.o arch/nv/gm107.o arch/nv/nv.o arch/nv/vuc.o arch/nv/xtensa.o arch/nv/astr.o arch/nv/colors.o \
arch/nv/core-dis.o arch/nv/core.o arch/nv/envydis.o arch/nv/gf100.o arch/nv/hwsq.o arch/nv/vcomp.o arch/nv/mask.o \
arch/nv/varinfo.o arch/nv/vardata.o arch/nv/symtab.o arch/nv/easm.o arch/nv/aprintf.o arch/nv/easm_xfrm.o arch/nv/easm_print.o \
arch/mips/mips-rsp.o \
arch/pdp11/pdp11.o
.PHONY: all
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,5 @@ Credits
* Michael Clark, <a href="https://github.com/michaeljclark/riscv-disassembler">riscv-disassembler</a>
* Justin Sherman, <a href="https://github.com/jsherman212/armadillo">armadillo</a>
* NASM Authors, <a href="https://github.com/netwide-assembler/nasm">nasm</a>
* Marcelina Kościelnicka, <a href="https://github.com/envytools/envytools">envytools</a>
* Namdak Tonpa, <a href="https://github.com/asmedit/dasm-pdp11">dasm-pdp11</a>, <a href="https://github.com/asmedit/dasm-mips">dasm-mips</a>
38 changes: 38 additions & 0 deletions arch/nv/aprintf.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2009-2011 Marcelina Kościelnicka <[email protected]>
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

#include "util.h"
#include <stdarg.h>

char *aprintf(const char *format, ...) {
va_list va;
va_start(va, format);
size_t sz = vsnprintf(0, 0, format, va);
va_end(va);
char *res = malloc(sz + 1);
va_start(va, format);
vsnprintf(res, sz + 1, format, va);
va_end(va);
return res;
}
67 changes: 67 additions & 0 deletions arch/nv/astr.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* Copyright (C) 2012 Marcelina Kościelnicka <[email protected]>
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

#include "util.h"

void print_escaped_astr(FILE *out, struct astr *astr) {
int i;
fprintf(out, "\"");
for (i = 0; i < astr->len; i++) {
unsigned char c = astr->str[i];
switch (c) {
case '\\':
fprintf(out, "\\\\");
break;
case '\"':
fprintf(out, "\\\"");
break;
case '\n':
fprintf(out, "\\n");
break;
case '\f':
fprintf(out, "\\f");
break;
case '\t':
fprintf(out, "\\t");
break;
case '\a':
fprintf(out, "\\a");
break;
case '\v':
fprintf(out, "\\v");
break;
case '\r':
fprintf(out, "\\r");
break;
default:
if (c >= 0x20 && c <= 0x7e) {
fprintf(out, "%c", c);
} else {
fprintf(out, "\\x%02x", c);
}
break;
}
}
fprintf(out, "\"");
}
61 changes: 61 additions & 0 deletions arch/nv/colors.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright (C) 2012 Marcelina Kościelnicka <[email protected]>
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

#include "colors.h"

const struct envy_colors envy_null_colors = {
.reset = "",
.iname = "",
.rname = "",
.mod = "",
.sym = "",
.reg = "",
.regsp = "",
.num = "",
.mem = "",
.btarg = "",
.ctarg = "",
.bctarg = "",
.eval = "",
.comm = "",
.err = "",
};

const struct envy_colors envy_def_colors = {
.reset = "\x1b[0m",
.iname = "\x1b[0;32m",
.rname = "\x1b[0;32m",
.mod = "\x1b[0;36m",
.sym = "\x1b[0;36m",
.reg = "\x1b[0;31m",
.regsp = "\x1b[0;35m",
.num = "\x1b[0;33m",
.mem = "\x1b[0;35m",
.btarg = "\x1b[0;35m",
.ctarg = "\x1b[0;1;37m",
.bctarg = "\x1b[0;1;35m",
.eval = "\x1b[0;35m",
.comm = "\x1b[0;34m",
.err = "\x1b[0;1;31m",
};
49 changes: 49 additions & 0 deletions arch/nv/colors.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2012 Marcelina Kościelnicka <[email protected]>
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

#ifndef COLORS_H
#define COLORS_H

struct envy_colors {
const char *reset;
const char *iname; /* instruction name */
const char *rname; /* register or bitfield name */
const char *mod; /* instruction modifier */
const char *sym; /* auxiliary char like { , + */
const char *reg; /* ISA register */
const char *regsp; /* special ISA register */
const char *num; /* immediate number */
const char *mem; /* memory reference */
const char *btarg; /* branch target */
const char *ctarg; /* call target */
const char *bctarg; /* branch and call target */
const char *eval; /* enum value */
const char *comm; /* comment */
const char *err; /* error */
};

extern const struct envy_colors envy_null_colors;
extern const struct envy_colors envy_def_colors;

#endif
Loading

0 comments on commit a441393

Please sign in to comment.