Browse Source
2014-11-28 Sandra Loosemore <sandra@codesourcery.com> include/opcode/ * nios2.h (NIOS2_INSN_ADDI, NIOS2_INSN_ANDI): Delete. (NIOS2_INSN_ORI, NIOS2_INSN_XORI): Delete. (NIOS2_INSN_OPTARG): Renumber. opcodes/ * nios2-opc.c (nios2_r1_opcodes): Remove deleted attributes from descriptors. gas/ * config/tc-nios2.c (can_evaluate_expr, get_expr_value): Delete. (output_addi, output_andi, output_ori, output_xori): Delete. (md_assemble): Remove calls to deleted functions. gas/testsuite/ * gas/nios2/nios2.exp: Make "movi" a list test. * gas/nios2/movi.s: Adjust comments, add another case. * gas/nios2/movi.l: New. * gas/nios2/movi.d: Delete.gdb-7.9-branch
11 changed files with 45 additions and 169 deletions
@ -1,13 +0,0 @@ |
|||
#objdump: -dr --prefix-addresses --show-raw-insn |
|||
#name: NIOS2 movi |
|||
|
|||
# Test implicit conversion of movi/movhi etc |
|||
.*: file format elf32-littlenios2 |
|||
|
|||
Disassembly of section .text: |
|||
0+0000 <[^>]*> 00800804 movi r2,32 |
|||
0+0004 <[^>]*> 00880034 movhi r2,8192 |
|||
0+0008 <[^>]*> 00bffff4 movhi r2,65535 |
|||
0+000c <[^>]*> 28bffff4 orhi r2,r5,65535 |
|||
0+0010 <[^>]*> 50bffffc xorhi r2,r10,65535 |
|||
0+0014 <[^>]*> 78bfffec andhi r2,r15,65535 |
|||
@ -0,0 +1,6 @@ |
|||
.*movi.s: Assembler messages: |
|||
.*movi.s:9: Error: immediate value 536870912 out of range -32768 to 32767 |
|||
.*movi.s:12: Error: immediate value -65536 out of range -32768 to 32767 |
|||
.*movi.s:15: Error: immediate value 4294901760 out of range 0 to 65535 |
|||
.*movi.s:16: Error: immediate value 4294901760 out of range 0 to 65535 |
|||
.*movi.s:17: Error: immediate value 4294901760 out of range 0 to 65535 |
|||
@ -1,21 +1,21 @@ |
|||
# Source file used to test silent conversion of |
|||
# movi to orhi etc |
|||
# Source file used to test that former silent conversion of |
|||
# movi to orhi etc now gives range errors instead. |
|||
|
|||
foo: |
|||
# this doesn't get converted |
|||
# This doesn't get converted. |
|||
movi r2, 0x20 |
|||
|
|||
# this does |
|||
# This used to convert. |
|||
movi r2, 0x20000000 |
|||
|
|||
# addi should convert only if the source register is r0 |
|||
# addi used to convert only if the source register is r0. |
|||
addi r2, r0, 0xffff0000 |
|||
# but we can't test for non-conversion because the value would |
|||
# be out of range |
|||
|
|||
# logical ops should convert for any register |
|||
# Logical ops used to convert to equivalent *hi for any register. |
|||
ori r2, r5, 0xffff0000 |
|||
xori r2, r10, 0xffff0000 |
|||
andi r2, r15, 0xffff0000 |
|||
|
|||
|
|||
# This one used to be buggy and convert even though it wasn't supposed to, |
|||
# because it was failing to take the %lo relocation into account. |
|||
ori r23,r23,%lo(0x12340000) |
|||
|
|||
Loading…
Reference in new issue