forked from Imagelibrary/binutils-gdb
* ldexp.c: Add LOG2CEIL() builtin function to linker script language
* ldgram.y: Likewise * ldlex.l: Likewise * NEWS: Mention the new feature. * ld.texinfo: Document the new feature. * ld-scripts/log2.exp: New: Run the new log2 test. * ld-scripts/log2.s: Source for the new test. * ld-scripts/log2.t: Linker script for new test.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2013-08-14 Clemens Lang <clemens.lang@fau.de>
|
||||
|
||||
* ld-scripts/log2.exp: New: Run the new log2 test.
|
||||
* ld-scripts/log2.s: Source for the new test.
|
||||
* ld-scripts/log2.t: Linker script for new test.
|
||||
|
||||
2013-08-14 John Tytgat <john@bass-software.com>
|
||||
|
||||
PR ld/15787
|
||||
|
||||
34
ld/testsuite/ld-scripts/log2.exp
Normal file
34
ld/testsuite/ld-scripts/log2.exp
Normal file
@@ -0,0 +1,34 @@
|
||||
# Test LOG2() expression in linker script language.
|
||||
# By Clemens Lang
|
||||
# Copyright 2013
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
set testname "binary logarithm"
|
||||
|
||||
if {![ld_assemble $as $srcdir/$subdir/log2.s tmpdir/log2.o]} {
|
||||
unresolved $testname
|
||||
return
|
||||
}
|
||||
|
||||
if {![ld_simple_link $ld tmpdir/log2 "-T $srcdir/$subdir/log2.t tmpdir/log2.o"]} {
|
||||
fail $testname
|
||||
} else {
|
||||
pass $testname
|
||||
}
|
||||
1
ld/testsuite/ld-scripts/log2.s
Normal file
1
ld/testsuite/ld-scripts/log2.s
Normal file
@@ -0,0 +1 @@
|
||||
.word 0
|
||||
8
ld/testsuite/ld-scripts/log2.t
Normal file
8
ld/testsuite/ld-scripts/log2.t
Normal file
@@ -0,0 +1,8 @@
|
||||
ASSERT(LOG2CEIL(0) == 0, "LOG2CEIL(0) == 0");
|
||||
ASSERT(LOG2CEIL(1) == 0, "LOG2CEIL(1) == 0");
|
||||
ASSERT(LOG2CEIL(2) == 1, "LOG2CEIL(2) == 1");
|
||||
ASSERT(LOG2CEIL(3) == 2, "LOG2CEIL(3) == 2");
|
||||
ASSERT(LOG2CEIL(4) == 2, "LOG2CEIL(4) == 2");
|
||||
ASSERT(LOG2CEIL(0x0ff) == 8, "LOG2CEIL(0x0ff) == 8");
|
||||
ASSERT(LOG2CEIL(0x100) == 8, "LOG2CEIL(0x100) == 8");
|
||||
ASSERT(LOG2CEIL(0x1ff) == 9, "LOG2CEIL(0x1ff) == 9");
|
||||
Reference in New Issue
Block a user