diff options
Diffstat (limited to 'tools/sh2d.c')
-rw-r--r-- | tools/sh2d.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/sh2d.c b/tools/sh2d.c index aee69d324e..cb78df840e 100644 --- a/tools/sh2d.c +++ b/tools/sh2d.c | |||
@@ -8,6 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | 10 | ||
11 | #include <stdint.h> | ||
11 | #include <stdio.h> | 12 | #include <stdio.h> |
12 | #include <stdlib.h> | 13 | #include <stdlib.h> |
13 | #include <string.h> | 14 | #include <string.h> |
@@ -441,7 +442,7 @@ void SH2Disasm(unsigned v_addr, unsigned char *p_addr, int mode, char *m_addr) | |||
441 | } | 442 | } |
442 | else /* .L */ | 443 | else /* .L */ |
443 | { | 444 | { |
444 | unsigned char *b_addr = (unsigned char *)((int)p_addr & 0xfffffffc); | 445 | unsigned char *b_addr = (unsigned char *)((intptr_t)p_addr & ~3); |
445 | int dat = (unsigned int) (*(imm + b_addr) << 24) | (*(imm + b_addr + 1) << 16) | 446 | int dat = (unsigned int) (*(imm + b_addr) << 24) | (*(imm + b_addr + 1) << 16) |
446 | | (*(imm + b_addr + 2) << 8) | *(imm + b_addr + 3) ; | 447 | | (*(imm + b_addr + 2) << 8) | *(imm + b_addr + 3) ; |
447 | /* SH-1 register name lookup */ | 448 | /* SH-1 register name lookup */ |