* 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:
Bob Wilson 2004-11-11 19:05:43 +00:00
parent d6f7abdf98
commit a67517f48e
6 changed files with 75 additions and 4 deletions

View File

@ -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>
* config/tc-xtensa.c (update_next_frag_state): Always add a NOP if

View File

@ -7242,8 +7242,11 @@ xtensa_mark_narrow_branches (void)
use for alignment narrow branches that definitely will not expand to a
jump and a branch. These functions find and mark these cases. */
/* the range in bytes of a bnez.n and beqz.n */
#define MAX_IMMED6 68
/* The range in bytes of BNEZ.N and BEQZ.N. The target operand is encoded
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 *);

View File

@ -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>
* gas/i386/opcode.s: Pad section.

View File

@ -78,9 +78,9 @@ if [istarget xtensa*-*-*] then {
objdump_finish
if [all_ones $x1] then { pass $testname } else { fail $testname }
run_dump_test "short_branch_offset"
}
if [info exists errorInfo] then {
unset errorInfo
}
}

View 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

View 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: