Age | Commit message (Collapse) | Author | Files | Lines |
|
[-Werror=overflow]
Regenerating BPF target using the maintainer mode emits:
.../opcodes/bpf-opc.c:57:11: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘18446744073709486335’ to ‘4294902015’ [-Werror=overflow]
57 | 64, 64, 0xffffffffffff00ff, { { F (F_IMM32) }, { F (F_OFFSET16) }, { F (F_SRCLE) }, { F (F_OP_CODE) }, { F (F_DSTLE) }, { F (F_OP_SRC) }, { F (F_OP_CLASS) }, { 0 } }
The use of a narrow size to handle the mask CGEN in instruction format
is causing this error. Additionally eBPF `call' instructions
constructed by expressions using symbols (BPF_PSEUDO_CALL) emits
annotations in `src' field of the instruction, used to identify BPF
target endianness.
cpu/
* bpf.cpu (define-call-insn): Remove `src' field from
instruction mask.
include/
*opcode/cge.h (CGEN_IFMT): Adjust mask bit width.
opcodes/
* bpf-opc.c: Regenerate.
|
|
The newer update-copyright.py fixes file encoding too, removing cr/lf
on binutils/bfdtest2.c and ld/testsuite/ld-cygwin/exe-export.exp, and
embedded cr in binutils/testsuite/binutils-all/ar.exp string match.
|
|
As was done for hash_insn_array in commit d3d1cc7b13b4.
* cgen-dis.c (hash_insn_list): Increase size of buf. Assert
size is large enough.
|
|
The result of running etc/update-copyright.py --this-year, fixing all
the files whose mode is changed by the script, plus a build with
--enable-maintainer-mode --enable-cgen-maint=yes, then checking
out */po/*.pot which we don't update frequently.
The copy of cgen was with commit d1dd5fcc38ead reverted as that commit
breaks building of bfp opcodes files.
|
|
This commit provides a small performance improvement when starting up
CGEN based disassemblers by making use of __builtin_popcount.
The #if check used in this commit was copied from bfd/elf32-arm.c
where __builtin_popcount is also used.
I ran into this code while investigating some GDB tests that would
occasionally timeout. One of the reason these tests were having
problems is that the m16c and m32c disassemblers take so long to
initialise themselves. Speeding up count_decodable_bits helps, but is
not a total solution. Still, this felt like an easy win which added
minimal extra complexity, so I figure its worth doing.
opcodes/ChangeLog:
* cgen-dis.c (count_decodable_bits): Use __builtin_popcount when
available.
|
|
|
|
|
|
* cgen-dis.c (hash_insn_array): Increase size of buf. Assert
size is large enough.
|
|
|
|
|
|
|
|
|
|
signed integer.
* cgen-dis.c (count_decodable_bits): Use unsigned value for mask
test bit.
|
|
|
|
|
|
|
|
|
|
* cgen-dis.c (hash_insn_array): Use CGEN_CPU_INSN_ENDIAN instead
of CGEN_CPU_ENDIAN.
(hash_insns_list): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
* cgen-dis.c: Add prototypes for count_decodable_bits
and add_insn_to_hash_chain.
|
|
* cgen-dis.c (count_decodable_bits): New function.
(add_insn_to_hash_chain): New function.
(hash_insn_array): Call add_insn_to_hash_chain.
(hash_insn_list): Call add_insn_to_hash_chain.
|
|
|
|
|
|
2001-01-02 Richard Sandiford <rsandifo@redhat.com>
* cgen-dis.c (hash_insn_array): Use bfd_put_bits().
(hash_insn_list): Likewise
* cgen-ibld.in (insert_1): Use bfd_put_bits() and bfd_get_bits().
(extract_1): Use bfd_get_bits().
(extract_normal): Apply sign extension to both extraction
methods.
* cgen-opc.c (cgen_get_insn_value): Use bfd_get_bits()
(cgen_put_insn_value): Use bfd_put_bits()
|
|
* cgen-opc.c (cgen_hw_lookup_by_name): 'i' is now unsigned.
(cgen_hw_lookup_by_num): Ditto.
(cgen_operand_lookup_by_name): Ditto.
(print_address): Ditto.
(print_keyword): Ditto.
* cgen-dis.c (hash_insn_array): Mark unused parameters with
ATTRIBUTE_UNUSED.
* cgen-asm.c (hash_insn_array): Mark unused parameters with
ATTRIBUTE_UNUSED.
(cgen_parse_keyword): Ditto.
|
|
|