* m32c.cpu (f-dsp-8-s24): Mask high byte after shifting it.

* m32c-ibld.c: Regenerate.
This commit is contained in:
DJ Delorie 2010-07-03 04:09:56 +00:00
parent 81a0b7e2ae
commit 21375995bd
4 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2010-07-03 DJ Delorie <dj@delorie.com>
* m32c.cpu (f-dsp-8-s24): Mask high byte after shifting it.
2010-02-11 Doug Evans <dje@sebabeach.org> 2010-02-11 Doug Evans <dje@sebabeach.org>
* m32r.cpu (HASH-PREFIX): Delete. * m32r.cpu (HASH-PREFIX): Delete.

View File

@ -572,10 +572,10 @@
) )
(df f-dsp-8-s24 "24 bit signed" (all-isas) 8 24 INT (df f-dsp-8-s24 "24 bit signed" (all-isas) 8 24 INT
((value pc) (or SI ((value pc) (or SI
(or (srl value 16) (and value #xff00)) (or (and (srl value 16) #xff) (and value #xff00))
(sll (ext INT (trunc QI (and value #xff))) 16))) (sll (ext INT (trunc QI (and value #xff))) 16)))
((value pc) (or SI ((value pc) (or SI
(or (srl value 16) (and value #xff00)) (or (and (srl value 16) #xff) (and value #xff00))
(sll (ext INT (trunc QI (and value #xff))) 16))) (sll (ext INT (trunc QI (and value #xff))) 16)))
) )

View File

@ -1,3 +1,7 @@
2010-07-03 DJ Delorie <dj@delorie.com>
* m32c-ibld.c: Regenerate.
2010-07-03 Alan Modra <amodra@gmail.com> 2010-07-03 Alan Modra <amodra@gmail.com>
* ppc-opc.c (PWR2COM): Define. * ppc-opc.c (PWR2COM): Define.

View File

@ -1077,7 +1077,7 @@ m32c_cgen_insert_operand (CGEN_CPU_DESC cd,
case M32C_OPERAND_DSP_8_S24 : case M32C_OPERAND_DSP_8_S24 :
{ {
long value = fields->f_dsp_8_s24; long value = fields->f_dsp_8_s24;
value = ((((((USI) (value) >> (16))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16)))); value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16))));
errmsg = insert_normal (cd, value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, buffer); errmsg = insert_normal (cd, value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, buffer);
} }
break; break;
@ -2234,7 +2234,7 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC cd,
{ {
long value; long value;
length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, pc, & value); length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, pc, & value);
value = ((((((USI) (value) >> (16))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16)))); value = ((((((((USI) (value) >> (16))) & (255))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16))));
fields->f_dsp_8_s24 = value; fields->f_dsp_8_s24 = value;
} }
break; break;