From 54d46aca3532c1d74c3bbeb6ec2a389761f9663c Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 3 Jan 2006 22:06:18 +0000 Subject: [PATCH] * cgen-ibld.in (extract_normal): Avoid memory range errors. * m32c-ibld.c: Regenerated. --- opcodes/ChangeLog | 5 +++++ opcodes/cgen-ibld.in | 7 +++---- opcodes/m32c-ibld.c | 7 +++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index e465c8d038..ba9d16d318 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2006-01-03 DJ Delorie + + * cgen-ibld.in (extract_normal): Avoid memory range errors. + * m32c-ibld.c: Regenerated. + 2005-12-27 Alan Modra * Makefile.am: Run "make dep-am". diff --git a/opcodes/cgen-ibld.in b/opcodes/cgen-ibld.in index 75506cdfc7..77deeed55d 100644 --- a/opcodes/cgen-ibld.in +++ b/opcodes/cgen-ibld.in @@ -3,7 +3,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator. - the resultant file is machine generated, cgen-ibld.in isn't - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2005 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -440,9 +440,8 @@ extract_normal (CGEN_CPU_DESC cd, word_length may be too big. */ if (cd->min_insn_bitsize < cd->base_insn_bitsize) { - if (word_offset == 0 - && word_length > total_length) - word_length = total_length; + if (word_offset + word_length > total_length) + word_length = total_length - word_offset; } /* Does the value reside in INSN_VALUE, and at the right alignment? */ diff --git a/opcodes/m32c-ibld.c b/opcodes/m32c-ibld.c index 16f0048e3b..62c753b934 100644 --- a/opcodes/m32c-ibld.c +++ b/opcodes/m32c-ibld.c @@ -3,7 +3,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator. - the resultant file is machine generated, cgen-ibld.in isn't - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2005 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -440,9 +440,8 @@ extract_normal (CGEN_CPU_DESC cd, word_length may be too big. */ if (cd->min_insn_bitsize < cd->base_insn_bitsize) { - if (word_offset == 0 - && word_length > total_length) - word_length = total_length; + if (word_offset + word_length > total_length) + word_length = total_length - word_offset; } /* Does the value reside in INSN_VALUE, and at the right alignment? */ -- 2.34.1