FS#7182: Initial attempt by Dave Chapman at getting ARM disassembler to compile in Linux.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14127 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Barry Wardell 2007-08-01 22:17:36 +00:00
parent 307d2ddce9
commit 0b8dd125c3
3 changed files with 31 additions and 4 deletions

View file

@ -0,0 +1,26 @@
CFLAGS = -Wall
ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
OUTPUT=arm_disass.exe
CROSS=
CFLAGS+=-mno-cygwin
else
OUTPUT=arm_disass
CROSS=i586-mingw32msvc-
endif
NATIVECC = gcc
CC = $(CROSS)gcc
all: $(OUTPUT)
arm_disass: main.c disasm_arm.c
gcc $(CFLAGS) -o arm_disass main.c disasm_arm.c
strip arm_disass
arm_disass.exe: main.c disasm_arm.c
$(CC) $(CFLAGS) -o arm_disass.exe main.c disasm_arm.c
$(CROSS)strip arm_disass.exe
clean:
rm -f arm_disass main.o disasm_arm.o *~

View file

@ -1,5 +1,6 @@
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#define ULONG unsigned long
#define UCHAR unsigned char
@ -194,7 +195,7 @@ void opcode_stg(char *stg, ULONG val, ULONG off)
if(val & 0x2000000) // immidiate
{
off = (ULONG)((unsigned __int64)(val&0xff) << (32 - 2 * ((val >> 8) & 15))) | ((val&0xff) >> 2 * ((val >> 8) & 15));
off = (ULONG)((uint64_t)(val&0xff) << (32 - 2 * ((val >> 8) & 15))) | ((val&0xff) >> 2 * ((val >> 8) & 15));
sprintf(op2, FRMT" ", off);
}
else

View file

@ -10,7 +10,7 @@ ULONG isdata[1000000]; /* each bit defines one byte as: code=0, data=1 */
extern void dis_asm(ULONG off, ULONG val, char *stg);
void main(int argc, char **argv)
int main(int argc, char **argv)
{
FILE *in, *out;
char *ptr, stg[256];
@ -20,7 +20,7 @@ void main(int argc, char **argv)
if(argc == 1 || strcmp(argv[1], "--help") == 0)
{ printf("Usage: arm_disass [input file]\n");
printf(" disassembles input file to 'disasm.txt'");
printf(" disassembles input file to 'disasm.txt'\n");
exit(-1);
}