From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Henderson To: cgen@sources.redhat.com Subject: cgen-ibld.in 64-bit extract bug Date: Mon, 16 Jul 2001 22:38:00 -0000 Message-id: <20010716223803.A11519@redhat.com> X-SW-Source: 2001-q3/msg00044.html CGEN_INSN_INT is usually an unsigned int, while valuep is a long. Under these conditions, the masking and sign-extension done at the end of the function is incorrect unless sizeof(int)==sizeof(long). Ok? r~ * cgen-ibld.in (extract_normal): Make value and mask a long. Index: cgen-ibld.in =================================================================== RCS file: /cvs/cvsfiles/devo/opcodes/cgen-ibld.in,v retrieving revision 1.15 diff -c -p -d -r1.15 cgen-ibld.in *** cgen-ibld.in 2001/07/01 02:49:14 1.15 --- cgen-ibld.in 2001/07/17 05:32:18 *************** extract_normal (cd, ex_info, insn_value, *** 415,421 **** #endif long *valuep; { ! CGEN_INSN_INT value, mask; /* If LENGTH is zero, this operand doesn't contribute to the value so give it a standard value of zero. */ --- 415,421 ---- #endif long *valuep; { ! long value, mask; /* If LENGTH is zero, this operand doesn't contribute to the value so give it a standard value of zero. */