diff options
Diffstat (limited to 'cpu')
-rw-r--r-- | cpu/ChangeLog | 4 | ||||
-rw-r--r-- | cpu/m32c.cpu | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog index 5611cd1..f67c869 100644 --- a/cpu/ChangeLog +++ b/cpu/ChangeLog @@ -1,3 +1,7 @@ +2020-02-03 Alan Modra <amodra@gmail.com> + + * m32c.cpu (f-dsp-64-s16): Mask before shifting signed value. + 2020-02-01 Alan Modra <amodra@gmail.com> * frv.cpu (f-u12): Multiply rather than left shift signed values. diff --git a/cpu/m32c.cpu b/cpu/m32c.cpu index 48b5acd..ab65fc1 100644 --- a/cpu/m32c.cpu +++ b/cpu/m32c.cpu @@ -781,12 +781,12 @@ (df f-dsp-64-s16 " 16 bit signed" (all-isas) 64 16 INT ((value pc) (ext INT (trunc HI - (or (and (srl value 8) #x00ff) - (and (sll value 8) #xff00))))) ; insert + (or (and (srl value 8) #xff) + (sll (and value #xff) 8))))) ; insert ((value pc) (ext INT (trunc HI - (or (and (srl value 8) #x00ff) - (and (sll value 8) #xff00))))) ; extract + (or (and (srl value 8) #xff) + (sll (and value #xff) 8))))) ; extract ) ;------------------------------------------------------------- |