mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-19 14:34:07 +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:
parent
d6f7abdf98
commit
a67517f48e
@ -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
|
||||
|
@ -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 *);
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
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:
|
Loading…
Reference in New Issue
Block a user