mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-09-09 17:02:22 +08:00
gas/
* config/tc-xtensa.c (MAX_IMMED6): Change value to 65. gas/testsuite/ * gas/xtensa/short_branch_offset.s: New. * gas/xtensa/short_branch_offset.d: New. * gas/xtensa/all.exp: Run new test.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2004-11-11 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* config/tc-xtensa.c (MAX_IMMED6): Change value to 65.
|
||||||
|
|
||||||
2004-11-10 Bob Wilson <bob.wilson@acm.org>
|
2004-11-10 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
* config/tc-xtensa.c (update_next_frag_state): Always add a NOP if
|
* config/tc-xtensa.c (update_next_frag_state): Always add a NOP if
|
||||||
|
@ -7242,8 +7242,11 @@ xtensa_mark_narrow_branches (void)
|
|||||||
use for alignment narrow branches that definitely will not expand to a
|
use for alignment narrow branches that definitely will not expand to a
|
||||||
jump and a branch. These functions find and mark these cases. */
|
jump and a branch. These functions find and mark these cases. */
|
||||||
|
|
||||||
/* the range in bytes of a bnez.n and beqz.n */
|
/* The range in bytes of BNEZ.N and BEQZ.N. The target operand is encoded
|
||||||
#define MAX_IMMED6 68
|
as PC + 4 + imm6, where imm6 is a 6-bit immediate ranging from 0 to 63.
|
||||||
|
We start counting beginning with the frag after the 2-byte branch, so the
|
||||||
|
maximum offset is (4 - 2) + 63 = 65. */
|
||||||
|
#define MAX_IMMED6 65
|
||||||
|
|
||||||
static size_t unrelaxed_frag_max_size (fragS *);
|
static size_t unrelaxed_frag_max_size (fragS *);
|
||||||
|
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-11-11 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
|
* gas/xtensa/short_branch_offset.s: New.
|
||||||
|
* gas/xtensa/short_branch_offset.d: New.
|
||||||
|
* gas/xtensa/all.exp: Run new test.
|
||||||
|
|
||||||
2004-11-10 Alan Modra <amodra@bigpond.net.au>
|
2004-11-10 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* gas/i386/opcode.s: Pad section.
|
* gas/i386/opcode.s: Pad section.
|
||||||
|
@ -78,9 +78,9 @@ if [istarget xtensa*-*-*] then {
|
|||||||
objdump_finish
|
objdump_finish
|
||||||
if [all_ones $x1] then { pass $testname } else { fail $testname }
|
if [all_ones $x1] then { pass $testname } else { fail $testname }
|
||||||
|
|
||||||
|
run_dump_test "short_branch_offset"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [info exists errorInfo] then {
|
if [info exists errorInfo] then {
|
||||||
unset errorInfo
|
unset errorInfo
|
||||||
}
|
}
|
||||||
|
34
gas/testsuite/gas/xtensa/short_branch_offset.d
Normal file
34
gas/testsuite/gas/xtensa/short_branch_offset.d
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# as: --no-target-align
|
||||||
|
# objdump: -d
|
||||||
|
|
||||||
|
# Test that a short branch with a target just barely out of range does
|
||||||
|
# not crash the assembler.
|
||||||
|
|
||||||
|
.*: +file format elf32-xtensa-.*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
00000000 <.text>:
|
||||||
|
0: .* bnez a2, 0x45
|
||||||
|
3: .* nop
|
||||||
|
6: .* nop
|
||||||
|
9: .* nop
|
||||||
|
c: .* nop
|
||||||
|
f: .* nop
|
||||||
|
12: .* nop
|
||||||
|
15: .* nop
|
||||||
|
18: .* nop
|
||||||
|
1b: .* nop
|
||||||
|
1e: .* nop
|
||||||
|
21: .* nop
|
||||||
|
24: .* nop
|
||||||
|
27: .* nop
|
||||||
|
2a: .* nop
|
||||||
|
2d: .* nop
|
||||||
|
30: .* nop
|
||||||
|
33: .* nop
|
||||||
|
36: .* nop
|
||||||
|
39: .* nop
|
||||||
|
3c: .* nop
|
||||||
|
3f: .* nop
|
||||||
|
42: .* nop
|
24
gas/testsuite/gas/xtensa/short_branch_offset.s
Normal file
24
gas/testsuite/gas/xtensa/short_branch_offset.s
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
bnez.n a2, .Lplus68
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
_nop
|
||||||
|
.Lplus68:
|
Reference in New Issue
Block a user