From cb10e79a50a08ffb6d8345159d4ccd864458c105 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 14 Jan 2004 10:05:00 +0000 Subject: [PATCH] cpu/ * frv.cpu (UNIT): Add IACC. (iacc-multiply-r-r): Use it. * frv.opc (fr400_unit_mapping): Add entry for IACC. (fr500_unit_mapping, fr550_unit_mapping): Likewise. opcodes/ * frv-desc.h: Regenerate. * frv-desc.c: Regenerate. * frv-opc.c: Regenerate. --- cpu/ChangeLog | 7 +++++++ cpu/frv.cpu | 5 +++-- cpu/frv.opc | 5 ++++- opcodes/ChangeLog | 6 ++++++ opcodes/frv-desc.c | 7 ++++--- opcodes/frv-desc.h | 6 +++--- opcodes/frv-opc.c | 3 +++ 7 files changed, 30 insertions(+), 9 deletions(-) diff --git a/cpu/ChangeLog b/cpu/ChangeLog index bae9cccc4e..00a4a1f102 100644 --- a/cpu/ChangeLog +++ b/cpu/ChangeLog @@ -1,3 +1,10 @@ +2004-01-14 Richard Sandiford + + * frv.cpu (UNIT): Add IACC. + (iacc-multiply-r-r): Use it. + * frv.opc (fr400_unit_mapping): Add entry for IACC. + (fr500_unit_mapping, fr550_unit_mapping): Likewise. + 2004-01-06 Alexandre Oliva 2003-12-19 Alexandre Oliva diff --git a/cpu/frv.cpu b/cpu/frv.cpu index f7bb2960ea..28e7833838 100644 --- a/cpu/frv.cpu +++ b/cpu/frv.cpu @@ -1,6 +1,6 @@ ; Fujitsu FRV opcode support, for GNU Binutils. -*- Scheme -*- ; -; Copyright 2000, 2001, 2003 Free Software Foundation, Inc. +; Copyright 2000, 2001, 2003, 2004 Free Software Foundation, Inc. ; ; Contributed by Red Hat Inc; developed under contract from Fujitsu. ; @@ -1388,6 +1388,7 @@ B0 B1 B01 C MULT-DIV ; multiply/division slotted differently on different machines + IACC ; iacc multiply slotted differently on different machines LOAD ; loads slotted differently on different machines STORE ; store slotted differently on different machines SCAN ; scan, scani slotted differently on different machines @@ -3118,7 +3119,7 @@ (define-pmacro (iacc-multiply-r-r name operation op ope comment) (dni name (comment) - ((UNIT MULT-DIV) (FR400-MAJOR I-1) (MACH fr400)) + ((UNIT IACC) (FR400-MAJOR I-1) (MACH fr400)) (.str name "$pack $GRi,$GRj") (+ pack (rd-null) op GRi ope GRj) ((.sym iacc- operation) (mul DI (ext DI GRi) (ext DI GRj))) diff --git a/cpu/frv.opc b/cpu/frv.opc index 92b55867ee..03c0f3e143 100644 --- a/cpu/frv.opc +++ b/cpu/frv.opc @@ -1,6 +1,6 @@ /* Fujitsu FRV opcode support, for GNU Binutils. -*- C -*- - Copyright 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright 2000, 2001, 2003, 2004 Free Software Foundation, Inc. Contributed by Red Hat Inc; developed under contract from Fujitsu. @@ -285,6 +285,7 @@ static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] = /* B01 */ UNIT_B0, /* C */ UNIT_C, /* MULT-DIV */ UNIT_I0, /* multiply and divide only in I0 unit. */ +/* IACC */ UNIT_I01, /* iacc multiply in I0 or I1 unit. */ /* LOAD */ UNIT_I0, /* load only in I0 unit. */ /* STORE */ UNIT_I0, /* store only in I0 unit. */ /* SCAN */ UNIT_I0, /* scan only in I0 unit. */ @@ -315,6 +316,7 @@ static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] = /* B01 */ UNIT_B01, /* C */ UNIT_C, /* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */ +/* IACC */ UNIT_NIL, /* iacc multiply not implemented */ /* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */ /* STORE */ UNIT_I0, /* store only in I0 unit. */ /* SCAN */ UNIT_I01, /* scan in I0 or I1 unit. */ @@ -345,6 +347,7 @@ static CGEN_ATTR_VALUE_TYPE fr550_unit_mapping[] = /* B01 */ UNIT_B01, /* C */ UNIT_C, /* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */ +/* IACC */ UNIT_NIL, /* iacc multiply not implemented. */ /* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */ /* STORE */ UNIT_I01, /* store in I0 or I1 unit. */ /* SCAN */ UNIT_IALL, /* scan in any integer unit. */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 747ca77ff6..b972bfa3d4 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2004-01-14 Richard Sandiford + + * frv-desc.h: Regenerate. + * frv-desc.c: Regenerate. + * frv-opc.c: Regenerate. + 2004-01-13 Michael Snyder * sh-dis.c (print_insn_sh): Allocate 4 bytes for insn. diff --git a/opcodes/frv-desc.c b/opcodes/frv-desc.c index 9cc85fef49..35659c7b42 100644 --- a/opcodes/frv-desc.c +++ b/opcodes/frv-desc.c @@ -84,6 +84,7 @@ static const CGEN_ATTR_ENTRY UNIT_attr[] = { "B01", UNIT_B01 }, { "C", UNIT_C }, { "MULT_DIV", UNIT_MULT_DIV }, + { "IACC", UNIT_IACC }, { "LOAD", UNIT_LOAD }, { "STORE", UNIT_STORE }, { "SCAN", UNIT_SCAN }, @@ -2397,17 +2398,17 @@ static const CGEN_IBASE frv_cgen_insn_table[MAX_INSNS] = /* smu$pack $GRi,$GRj */ { FRV_INSN_SMU, "smu", "smu", 32, - { 0, { (1<