Skip to content
Snippets Groups Projects
Commit 79bd7a83 authored by Nguyen Anh Quynh's avatar Nguyen Anh Quynh
Browse files

kstool: only report archs supported by the core. this fixes issue #24

parent 27c91be7
No related branches found
No related tags found
No related merge requests found
...@@ -12,30 +12,54 @@ static void usage(char *prog) ...@@ -12,30 +12,54 @@ static void usage(char *prog)
printf("Kstool v%s for Keystone Assembler Engine (www.keystone-engine.org)\nBy Nguyen Anh Quynh, 2016\n\n", VERSION); printf("Kstool v%s for Keystone Assembler Engine (www.keystone-engine.org)\nBy Nguyen Anh Quynh, 2016\n\n", VERSION);
printf("Syntax: %s <arch+mode> <assembly-string>\n", prog); printf("Syntax: %s <arch+mode> <assembly-string>\n", prog);
printf("\nThe following <arch+mode> options are supported:\n"); printf("\nThe following <arch+mode> options are supported:\n");
printf(" x16: X86 16bit, Intel syntax\n");
printf(" x32: X86 32bit, Intel syntax\n"); if (ks_arch_supported(KS_ARCH_X86)) {
printf(" x64: X86 64bit, Intel syntax\n"); printf(" x16: X86 16bit, Intel syntax\n");
printf(" x16att: X86 16bit, AT&T syntax\n"); printf(" x32: X86 32bit, Intel syntax\n");
printf(" x32att: X86 32bit, AT&T syntax\n"); printf(" x64: X86 64bit, Intel syntax\n");
printf(" x64att: X86 64bit, AT&T syntax\n"); printf(" x16att: X86 16bit, AT&T syntax\n");
printf(" arm: ARM - little endian\n"); printf(" x32att: X86 32bit, AT&T syntax\n");
printf(" armbe: ARM - big endian\n"); printf(" x64att: X86 64bit, AT&T syntax\n");
printf(" thumb: Thumb - little endian\n"); }
printf(" thumbbe: Thumb - big endian\n");
printf(" arm64: AArch64\n"); if (ks_arch_supported(KS_ARCH_ARM)) {
printf(" hexagon: Hexagon\n"); printf(" arm: ARM - little endian\n");
printf(" mips: Mips - little endian\n"); printf(" armbe: ARM - big endian\n");
printf(" mipsbe: Mips - big endian\n"); printf(" thumb: Thumb - little endian\n");
printf(" mips64: Mips64 - little endian\n"); printf(" thumbbe: Thumb - big endian\n");
printf(" mips64be: Mips64 - big endian\n"); }
printf(" ppc32be: PowerPC32 - big endian\n");
printf(" ppc64: PowerPC64 - little endian\n"); if (ks_arch_supported(KS_ARCH_ARM64)) {
printf(" ppc64be: PowerPC64 - big endian\n"); printf(" arm64: AArch64\n");
printf(" sparc: Sparc - little endian\n"); }
printf(" sparcbe: Sparc - big endian\n");
printf(" sparc64: Sparc64 - little endian\n"); if (ks_arch_supported(KS_ARCH_HEXAGON)) {
printf(" sparc64be: Sparc64 - big endian\n"); printf(" hexagon: Hexagon\n");
printf(" systemz: SystemZ (S390x)\n"); }
if (ks_arch_supported(KS_ARCH_MIPS)) {
printf(" mips: Mips - little endian\n");
printf(" mipsbe: Mips - big endian\n");
printf(" mips64: Mips64 - little endian\n");
printf(" mips64be: Mips64 - big endian\n");
}
if (ks_arch_supported(KS_ARCH_PPC)) {
printf(" ppc32be: PowerPC32 - big endian\n");
printf(" ppc64: PowerPC64 - little endian\n");
printf(" ppc64be: PowerPC64 - big endian\n");
}
if (ks_arch_supported(KS_ARCH_SPARC)) {
printf(" sparc: Sparc - little endian\n");
printf(" sparcbe: Sparc - big endian\n");
printf(" sparc64: Sparc64 - little endian\n");
printf(" sparc64be: Sparc64 - big endian\n");
}
if (ks_arch_supported(KS_ARCH_SYSTEMZ)) {
printf(" systemz: SystemZ (S390x)\n");
}
} }
int main(int argc, char **argv) int main(int argc, char **argv)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment