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:
parent
307d2ddce9
commit
0b8dd125c3
3 changed files with 31 additions and 4 deletions
26
utils/disassembler/arm/Makefile
Normal file
26
utils/disassembler/arm/Makefile
Normal 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 *~
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue