notaz.gp2x.de
/
ia32rtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
translate: extra check
[ia32rtools.git]
/
tools
/
cvt_data.c
diff --git
a/tools/cvt_data.c
b/tools/cvt_data.c
index
044857b
..
6aaf52c
100644
(file)
--- a/
tools/cvt_data.c
+++ b/
tools/cvt_data.c
@@
-138,7
+138,7
@@
static const char *type_name(enum dx_type type)
case DXT_BYTE:
return ".byte";
case DXT_WORD:
case DXT_BYTE:
return ".byte";
case DXT_WORD:
- return ".word";
+ return ".
h
word";
case DXT_DWORD:
return ".long";
case DXT_QUAD:
case DXT_DWORD:
return ".long";
case DXT_QUAD:
@@
-240,7
+240,6
@@
static const struct parsed_proto *check_var(FILE *fhdr,
{
const struct parsed_proto *pp, *pp_sym;
char fp_sym[256], fp_var[256];
{
const struct parsed_proto *pp, *pp_sym;
char fp_sym[256], fp_var[256];
- int i, bad = 0;
pp = proto_parse(fhdr, varname, 1);
if (pp == NULL) {
pp = proto_parse(fhdr, varname, 1);
if (pp == NULL) {
@@
-287,24
+286,7
@@
check_sym:
return pp;
}
return pp;
}
- if (pp->argc != pp_sym->argc || pp->argc_reg != pp_sym->argc_reg)
- bad = 1;
- else {
- for (i = 0; i < pp->argc; i++) {
- if ((pp->arg[i].reg != NULL) != (pp_sym->arg[i].reg != NULL)) {
- bad = 1;
- break;
- }
- if ((pp->arg[i].reg != NULL)
- && !IS(pp->arg[i].reg, pp_sym->arg[i].reg))
- {
- bad = 1;
- break;
- }
- }
- }
-
- if (bad) {
+ if (pp_cmp_func(pp, pp_sym)) {
pp_print(fp_sym, sizeof(fp_sym), pp_sym);
anote("var: %s\n", fp_var);
anote("sym: %s\n", fp_sym);
pp_print(fp_sym, sizeof(fp_sym), pp_sym);
anote("var: %s\n", fp_var);
anote("sym: %s\n", fp_sym);
@@
-501,9
+483,19
@@
int main(int argc, char *argv[])
asmln++;
p = sskip(line);
asmln++;
p = sskip(line);
- if (*p == 0
|| *p == ';'
)
+ if (*p == 0)
continue;
continue;
+ if (*p == ';') {
+ if (IS_START(p, ";org") && sscanf(p + 5, "%Xh", &i) == 1) {
+ // ;org is only seen at section start, so assume . addr 0
+ i &= 0xfff;
+ if (i != 0)
+ fprintf(fout, "\t\t .skip 0x%x\n", i);
+ }
+ continue;
+ }
+
for (wordc = 0; wordc < ARRAY_SIZE(words); wordc++) {
p = sskip(next_word_s(words[wordc], sizeof(words[0]), p));
if (*p == 0 || *p == ';') {
for (wordc = 0; wordc < ARRAY_SIZE(words); wordc++) {
p = sskip(next_word_s(words[wordc], sizeof(words[0]), p));
if (*p == 0 || *p == ';') {