diff options
Diffstat (limited to 'cpu/m32c.cpu')
-rw-r--r-- | cpu/m32c.cpu | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cpu/m32c.cpu b/cpu/m32c.cpu index bcc3616..5a38f1b 100644 --- a/cpu/m32c.cpu +++ b/cpu/m32c.cpu @@ -956,9 +956,12 @@ ) (df f-lab-8-16 "16 bit pc relative signed offset" (PCREL-ADDR SIGN-OPT all-isas) 8 16 UINT ((value pc) (or SI (sll (and (sub value (add pc 1)) #xff) 8) - (srl (and (sub value (add pc 1)) #xffff) 8))) - ((value pc) (add SI (or (srl (and value #xffff) 8) - (sra (sll (and value #xff) 24) 16)) (add pc 1))) + (srl (and (sub value (add pc 1)) #xff00) 8))) + ((value pc) (add SI (sub (xor (or (srl (and value #xff00) 8) + (sll (and value #xff) 8)) + #x8000) + #x8000) + (add pc 1))) ) (df f-lab-8-24 "24 bit absolute" (all-isas ABS-ADDR) 8 24 UINT ((value pc) (or SI |