X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fmasm_tools.h;fp=tools%2Fmasm_tools.h;h=717001ffd964c6dea51974d511031a8d2d4a7eae;hb=054f95b2d6d035e4ea49601072f5b3d3d162a491;hp=0000000000000000000000000000000000000000;hpb=46411e6ce8749031ba7b19b9fd20c2a8c6968b22;p=ia32rtools.git diff --git a/tools/masm_tools.h b/tools/masm_tools.h new file mode 100644 index 0000000..717001f --- /dev/null +++ b/tools/masm_tools.h @@ -0,0 +1,35 @@ +#if __SIZEOF_LONG__ != 8 +#error fix ret/strtoul to do 64bit +#endif + +static unsigned long parse_number(const char *number) +{ + int len = strlen(number); + const char *p = number; + char *endp = NULL; + unsigned long ret; + int neg = 0; + int bad; + + if (*p == '-') { + neg = 1; + p++; + } + if (len > 1 && *p == '0') + p++; + if (number[len - 1] == 'h') { + ret = strtoul(p, &endp, 16); + bad = (*endp != 'h'); + } + else { + ret = strtoul(p, &endp, 10); + bad = (*endp != 0); + } + if (bad) + aerr("number parsing failed (%s)\n", number); + if (neg) + ret = -ret; + return ret; +} + +