diff options
Diffstat (limited to 'opcodes/lm32-ibld.c')
-rw-r--r-- | opcodes/lm32-ibld.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/opcodes/lm32-ibld.c b/opcodes/lm32-ibld.c index 4bc63fb..a79398d 100644 --- a/opcodes/lm32-ibld.c +++ b/opcodes/lm32-ibld.c @@ -680,7 +680,7 @@ lm32_cgen_extract_operand (CGEN_CPU_DESC cd, { long value; length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 15, 16, 32, total_length, pc, & value); - value = ((pc) + (((SI) (((value) << (16))) >> (14)))); + value = ((pc) + (((((((((value) & (65535))) << (2))) ^ (131072))) - (131072)))); fields->f_branch = value; } break; @@ -688,7 +688,7 @@ lm32_cgen_extract_operand (CGEN_CPU_DESC cd, { long value; length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED)|(1<<CGEN_IFLD_PCREL_ADDR), 0, 25, 26, 32, total_length, pc, & value); - value = ((pc) + (((SI) (((value) << (6))) >> (4)))); + value = ((pc) + (((((((((value) & (67108863))) << (2))) ^ (134217728))) - (134217728)))); fields->f_call = value; } break; |