diff options
author | DJ Delorie <dj@redhat.com> | 2005-10-26 14:59:12 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2005-10-26 14:59:12 +0000 |
commit | f75eb1c00406df9d115a49dcf36c28dfef1478a6 (patch) | |
tree | fcf3521fe2f0638a87b654c609add945362d160d /opcodes/m32c-ibld.c | |
parent | f1022c90ad7f6b94257c1b2fda3b46a5db9c9867 (diff) | |
download | gdb-f75eb1c00406df9d115a49dcf36c28dfef1478a6.zip gdb-f75eb1c00406df9d115a49dcf36c28dfef1478a6.tar.gz gdb-f75eb1c00406df9d115a49dcf36c28dfef1478a6.tar.bz2 |
* m32c.cpu (f-dsp-8-s24, Dsp-8-s24): New.
(mov-dspsp-dst-defn, mov-src-dspsp-defn, mov16-dspsp-dst-defn,
mov16-src-dspsp-defn, mov32-dspsp-dst-defn, mov32-src-dspsp-defn):
dsp8[sp] is signed.
(mov.WL:S #imm,A0/A1): dsp24 is signed (i.e. -0x800000..0xffffff).
(mov.BW:S r0,r1): Fix typo r1l->r1.
(tst): Allow :G suffix.
* m32c.opc (parse_signed24): New, for -0x800000..0xffffff.
* m32c-asm.c: Regenerate.
* m32c-desc.c: Regenerate.
* m32c-desc.h: Regenerate.
* m32c-dis.c: Regenerate.
* m32c-ibld.c: Regenerate.
* m32c-opc.c: Regenerate.
* m32c-opc.h: Regenerate.
Diffstat (limited to 'opcodes/m32c-ibld.c')
-rw-r--r-- | opcodes/m32c-ibld.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/opcodes/m32c-ibld.c b/opcodes/m32c-ibld.c index f5c2dc3..c78d1f2 100644 --- a/opcodes/m32c-ibld.c +++ b/opcodes/m32c-ibld.c @@ -1027,6 +1027,13 @@ m32c_cgen_insert_operand (CGEN_CPU_DESC cd, case M32C_OPERAND_DSP_48_U8 : errmsg = insert_normal (cd, fields->f_dsp_48_u8, 0, 32, 16, 8, 32, total_length, buffer); break; + case M32C_OPERAND_DSP_8_S24 : + { + long value = fields->f_dsp_8_s24; + value = ((((((unsigned int) (value) >> (16))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16)))); + errmsg = insert_normal (cd, value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, buffer); + } + break; case M32C_OPERAND_DSP_8_S8 : errmsg = insert_normal (cd, fields->f_dsp_8_s8, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 8, 32, total_length, buffer); break; @@ -2135,6 +2142,14 @@ m32c_cgen_extract_operand (CGEN_CPU_DESC cd, case M32C_OPERAND_DSP_48_U8 : length = extract_normal (cd, ex_info, insn_value, 0, 32, 16, 8, 32, total_length, pc, & fields->f_dsp_48_u8); break; + case M32C_OPERAND_DSP_8_S24 : + { + long value; + length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 24, 32, total_length, pc, & value); + value = ((((((unsigned int) (value) >> (16))) | (((value) & (65280))))) | (((EXTQISI (TRUNCSIQI (((value) & (255))))) << (16)))); + fields->f_dsp_8_s24 = value; + } + break; case M32C_OPERAND_DSP_8_S8 : length = extract_normal (cd, ex_info, insn_value, 0|(1<<CGEN_IFLD_SIGNED), 0, 8, 8, 32, total_length, pc, & fields->f_dsp_8_s8); break; @@ -2977,6 +2992,9 @@ m32c_cgen_get_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case M32C_OPERAND_DSP_48_U8 : value = fields->f_dsp_48_u8; break; + case M32C_OPERAND_DSP_8_S24 : + value = fields->f_dsp_8_s24; + break; case M32C_OPERAND_DSP_8_S8 : value = fields->f_dsp_8_s8; break; @@ -3558,6 +3576,9 @@ m32c_cgen_get_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case M32C_OPERAND_DSP_48_U8 : value = fields->f_dsp_48_u8; break; + case M32C_OPERAND_DSP_8_S24 : + value = fields->f_dsp_8_s24; + break; case M32C_OPERAND_DSP_8_S8 : value = fields->f_dsp_8_s8; break; @@ -4144,6 +4165,9 @@ m32c_cgen_set_int_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case M32C_OPERAND_DSP_48_U8 : fields->f_dsp_48_u8 = value; break; + case M32C_OPERAND_DSP_8_S24 : + fields->f_dsp_8_s24 = value; + break; case M32C_OPERAND_DSP_8_S8 : fields->f_dsp_8_s8 = value; break; @@ -4703,6 +4727,9 @@ m32c_cgen_set_vma_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, case M32C_OPERAND_DSP_48_U8 : fields->f_dsp_48_u8 = value; break; + case M32C_OPERAND_DSP_8_S24 : + fields->f_dsp_8_s24 = value; + break; case M32C_OPERAND_DSP_8_S8 : fields->f_dsp_8_s8 = value; break; |