* config/tc-sh.c (md_apply_fix): Extend sign of the offset value
for 64-bit host. * gas/sh/sign-extension.d: New file. * gas/sh/sign-extension.s: New file. * gas/sh/basic.exp: Run new test.
This commit is contained in:
parent
77d7dc9283
commit
0c9b4fd74a
|
@ -1,3 +1,8 @@
|
|||
2009-08-29 Matt Fleming <matt@console-pimps.org>
|
||||
|
||||
* config/tc-sh.c (md_apply_fix): Extend sign of the offset value
|
||||
for 64-bit host.
|
||||
|
||||
2009-08-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-i386.c (cpu_arch): Use PROCESSOR_L1OM on "l1om".
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* tc-sh.c -- Assemble code for the Renesas / SuperH SH
|
||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
|
@ -4183,6 +4183,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
|||
val = ((val >> shift)
|
||||
| ((long) -1 & ~ ((long) -1 >> shift)));
|
||||
}
|
||||
|
||||
/* Extend sign for 64-bit host. */
|
||||
val = ((val & 0xffffffff) ^ 0x80000000) - 0x80000000;
|
||||
if (max != 0 && (val < min || val > max))
|
||||
as_bad_where (fixP->fx_file, fixP->fx_line, _("offset out of range"));
|
||||
else if (max != 0)
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2009-08-29 Matt Fleming <matt@console-pimps.org>
|
||||
|
||||
* gas/sh/sign-extension.d: New file.
|
||||
* gas/sh/sign-extension.s: New file.
|
||||
* gas/sh/basic.exp: Run new test.
|
||||
|
||||
2009-08-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/l1om.d: Check elf64-l1om format.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004, 2007
|
||||
# Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004, 2007, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
|
@ -169,6 +169,8 @@ if [istarget sh*-*-*] then {
|
|||
run_dump_test "reg-prefix"
|
||||
|
||||
run_dump_test "too_large"
|
||||
|
||||
run_dump_test "sign-extension"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#as: -little
|
||||
#objdump: -drj.text
|
||||
#name: Sign-extended immediate
|
||||
|
||||
.*: file format .*sh.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
00000000 <foo>:
|
||||
0: f0 e0 mov #-16,r0
|
||||
2: 09 00 nop
|
|
@ -0,0 +1,3 @@
|
|||
.align 2
|
||||
foo:
|
||||
mov #0xfffffff0, r0
|
Loading…
Reference in New Issue