• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

修订版952532d24f09bda0a80674b23f397731d8cff0bc (tree)
时间2005-03-25 11:21:46
作者nobody <>
Commiternobody <>

Log Message

This commit was manufactured by cvs2svn to create branch 'binutils-csl-arm-
2005q1-branch'.

Sprout from binutils-2_16-branch 2005-03-25 02:21:44 UTC Mark Mitchell <mark@codesourcery.com> ' * config/default.exp: Do not load libpath.exp if it does not'
Cherrypick from master 2005-03-16 17:27:17 UTC Daniel Jacobowitz <drow@false.org> ' * configure.tgt: Set emulation for arm-*-eabi*.':

gas/config/te-armeabi.h
gas/testsuite/gas/arm/archv6t2-bad.l
gas/testsuite/gas/arm/archv6t2-bad.s
gas/testsuite/gas/arm/archv6t2.d
gas/testsuite/gas/arm/archv6t2.s
gas/testsuite/gas/arm/thumbv6k.d
gas/testsuite/gas/arm/thumbv6k.s

更改概述

差异

--- /dev/null
+++ b/gas/config/te-armeabi.h
@@ -0,0 +1,8 @@
1+/* The EABI requires the use of VFP. */
2+#define FPU_DEFAULT FPU_ARCH_VFP_V2
3+#define EABI_DEFAULT EF_ARM_EABI_VER4
4+
5+#define LOCAL_LABELS_DOLLAR 1
6+#define LOCAL_LABELS_FB 1
7+
8+#include "obj-format.h"
--- /dev/null
+++ b/gas/testsuite/gas/arm/archv6t2-bad.l
@@ -0,0 +1,38 @@
1+[^:]*: Assembler messages:
2+[^:]*:6: Error: r15 not allowed here -- `bfc pc,#0,#1'
3+[^:]*:7: Error: r15 not allowed here -- `bfi pc,r0,#0,#1'
4+[^:]*:8: Error: r15 not allowed here -- `movw pc,#0'
5+[^:]*:9: Error: r15 not allowed here -- `movt pc,#0'
6+[^:]*:12: Error: immediate value out of range -- `bfc r0,#0,#0'
7+[^:]*:13: Error: immediate value out of range -- `bfc r0,#32,#0'
8+[^:]*:14: Error: immediate value out of range -- `bfc r0,#0,#33'
9+[^:]*:15: Error: immediate value out of range -- `bfc r0,#33,#1'
10+[^:]*:16: Error: immediate value out of range -- `bfc r0,#32,#1'
11+[^:]*:17: Error: bit-field extends past end of register -- `bfc r0,#28,#10'
12+[^:]*:19: Error: immediate value out of range -- `bfi r0,r1,#0,#0'
13+[^:]*:20: Error: immediate value out of range -- `bfi r0,r1,#32,#0'
14+[^:]*:21: Error: immediate value out of range -- `bfi r0,r1,#0,#33'
15+[^:]*:22: Error: immediate value out of range -- `bfi r0,r1,#33,#1'
16+[^:]*:23: Error: immediate value out of range -- `bfi r0,r1,#32,#1'
17+[^:]*:24: Error: bit-field extends past end of register -- `bfi r0,r1,#28,#10'
18+[^:]*:26: Error: immediate value out of range -- `sbfx r0,r1,#0,#0'
19+[^:]*:27: Error: immediate value out of range -- `sbfx r0,r1,#32,#0'
20+[^:]*:28: Error: immediate value out of range -- `sbfx r0,r1,#0,#33'
21+[^:]*:29: Error: immediate value out of range -- `sbfx r0,r1,#33,#1'
22+[^:]*:30: Error: immediate value out of range -- `sbfx r0,r1,#32,#1'
23+[^:]*:31: Error: bit-field extends past end of register -- `sbfx r0,r1,#28,#10'
24+[^:]*:33: Error: immediate value out of range -- `ubfx r0,r1,#0,#0'
25+[^:]*:34: Error: immediate value out of range -- `ubfx r0,r1,#32,#0'
26+[^:]*:35: Error: immediate value out of range -- `ubfx r0,r1,#0,#33'
27+[^:]*:36: Error: immediate value out of range -- `ubfx r0,r1,#33,#1'
28+[^:]*:37: Error: immediate value out of range -- `ubfx r0,r1,#32,#1'
29+[^:]*:38: Error: bit-field extends past end of register -- `ubfx r0,r1,#28,#10'
30+[^:]*:41: Error: immediate value out of range -- `bfi r0,#1,#2,#3'
31+[^:]*:44: Error: immediate value out of range -- `movt r0,#65537'
32+[^:]*:45: Error: immediate value out of range -- `movw r0,#65537'
33+[^:]*:46: Error: immediate value out of range -- `movt r0,#-1'
34+[^:]*:47: Error: immediate value out of range -- `movw r0,#-1'
35+[^:]*:50: Warning: destination register same as write-back base
36+[^:]*:51: Warning: destination register same as write-back base
37+[^:]*:52: Warning: destination register same as write-back base
38+[^:]*:53: Warning: source register same as write-back base
--- /dev/null
+++ b/gas/testsuite/gas/arm/archv6t2-bad.s
@@ -0,0 +1,53 @@
1+ @ We do not bother testing simple cases, e.g. immediates where
2+ @ registers belong, trailing junk at end of line.
3+ .text
4+x:
5+ @ pc not allowed
6+ bfc pc,#0,#1
7+ bfi pc,r0,#0,#1
8+ movw pc,#0
9+ movt pc,#0
10+
11+ @ bitfield range limits
12+ bfc r0,#0,#0
13+ bfc r0,#32,#0
14+ bfc r0,#0,#33
15+ bfc r0,#33,#1
16+ bfc r0,#32,#1
17+ bfc r0,#28,#10
18+
19+ bfi r0,r1,#0,#0
20+ bfi r0,r1,#32,#0
21+ bfi r0,r1,#0,#33
22+ bfi r0,r1,#33,#1
23+ bfi r0,r1,#32,#1
24+ bfi r0,r1,#28,#10
25+
26+ sbfx r0,r1,#0,#0
27+ sbfx r0,r1,#32,#0
28+ sbfx r0,r1,#0,#33
29+ sbfx r0,r1,#33,#1
30+ sbfx r0,r1,#32,#1
31+ sbfx r0,r1,#28,#10
32+
33+ ubfx r0,r1,#0,#0
34+ ubfx r0,r1,#32,#0
35+ ubfx r0,r1,#0,#33
36+ ubfx r0,r1,#33,#1
37+ ubfx r0,r1,#32,#1
38+ ubfx r0,r1,#28,#10
39+
40+ @ bfi accepts only #0 in Rm position
41+ bfi r0,#1,#2,#3
42+
43+ @ mov16 range limits
44+ movt r0,#65537
45+ movw r0,#65537
46+ movt r0,#-1
47+ movw r0,#-1
48+
49+ @ ldsttv4 Rd == Rn (warning)
50+ ldrht r0,[r0]
51+ ldrsbt r0,[r0]
52+ ldrsht r0,[r0]
53+ strht r0,[r0]
--- /dev/null
+++ b/gas/testsuite/gas/arm/archv6t2.d
@@ -0,0 +1,51 @@
1+#name: ARM V6T2 instructions
2+#as: -march=armv6t2
3+#objdump: -dr --prefix-addresses --show-raw-insn
4+
5+.*: +file format .*arm.*
6+
7+Disassembly of section .text:
8+0+00 <[^>]+> e7c00010 bfi r0, r0, #0, #1
9+0+04 <[^>]+> 17c00010 bfine r0, r0, #0, #1
10+0+08 <[^>]+> e7c09010 bfi r9, r0, #0, #1
11+0+0c <[^>]+> e7c00019 bfi r0, r9, #0, #1
12+0+10 <[^>]+> e7d10010 bfi r0, r0, #0, #18
13+0+14 <[^>]+> e7d10890 bfi r0, r0, #17, #1
14+0+18 <[^>]+> e7c0001f bfc r0, #0, #1
15+0+1c <[^>]+> e7c0001f bfc r0, #0, #1
16+0+20 <[^>]+> 17c0001f bfcne r0, #0, #1
17+0+24 <[^>]+> e7c0901f bfc r9, #0, #1
18+0+28 <[^>]+> e7d1001f bfc r0, #0, #18
19+0+2c <[^>]+> e7d1089f bfc r0, #17, #1
20+0+30 <[^>]+> e7a00050 sbfx r0, r0, #0, #1
21+0+34 <[^>]+> 17a00050 sbfxne r0, r0, #0, #1
22+0+38 <[^>]+> e7e00050 ubfx r0, r0, #0, #1
23+0+3c <[^>]+> e7a09050 sbfx r9, r0, #0, #1
24+0+40 <[^>]+> e7a00059 sbfx r0, r9, #0, #1
25+0+44 <[^>]+> e7a008d0 sbfx r0, r0, #17, #1
26+0+48 <[^>]+> e7b10050 sbfx r0, r0, #0, #18
27+0+4c <[^>]+> e3ff0f30 rbit r0, r0
28+0+50 <[^>]+> 13ff0f30 rbitne r0, r0
29+0+54 <[^>]+> e3ff9f30 rbit r9, r0
30+0+58 <[^>]+> e3ff0f39 rbit r0, r9
31+0+5c <[^>]+> e0600090 mls r0, r0, r0, r0
32+0+60 <[^>]+> 10600090 mlsne r0, r0, r0, r0
33+0+64 <[^>]+> e0690090 mls r9, r0, r0, r0
34+0+68 <[^>]+> e0600099 mls r0, r9, r0, r0
35+0+6c <[^>]+> e0600990 mls r0, r0, r9, r0
36+0+70 <[^>]+> e0609090 mls r0, r0, r0, r9
37+0+74 <[^>]+> e3000000 movw r0, #0 ; 0x0
38+0+78 <[^>]+> e3400000 movt r0, #0 ; 0x0
39+0+7c <[^>]+> 13000000 movwne r0, #0 ; 0x0
40+0+80 <[^>]+> e3009000 movw r9, #0 ; 0x0
41+0+84 <[^>]+> e3000999 movw r0, #2457 ; 0x999
42+0+88 <[^>]+> e3090000 movw r0, #36864 ; 0x9000
43+0+8c <[^>]+> e0f900b0 ldrht r0, \[r9\]
44+0+90 <[^>]+> e0f900f0 ldrsht r0, \[r9\]
45+0+94 <[^>]+> e0f900d0 ldrsbt r0, \[r9\]
46+0+98 <[^>]+> e0e900b0 strht r0, \[r9\]
47+0+9c <[^>]+> 10f900b0 ldrneht r0, \[r9\]
48+0+a0 <[^>]+> e0b090b9 ldrht r9, \[r0\], r9
49+0+a4 <[^>]+> e03090b9 ldrht r9, \[r0\], -r9
50+0+a8 <[^>]+> e0f099b9 ldrht r9, \[r0\], #153
51+0+ac <[^>]+> e07099b9 ldrht r9, \[r0\], #-153
--- /dev/null
+++ b/gas/testsuite/gas/arm/archv6t2.s
@@ -0,0 +1,55 @@
1+ .text
2+x:
3+ bfi r0, r0, #0, #1
4+ bfine r0, r0, #0, #1
5+
6+ bfi r9, r0, #0, #1
7+ bfi r0, r9, #0, #1
8+ bfi r0, r0, #0, #18
9+ bfi r0, r0, #17, #1
10+
11+ bfi r0, #0, #0, #1
12+ bfc r0, #0, #1
13+ bfcne r0, #0, #1
14+ bfc r9, #0, #1
15+ bfc r0, #0, #18
16+ bfc r0, #17, #1
17+
18+ sbfx r0, r0, #0, #1
19+ sbfxne r0, r0, #0, #1
20+ ubfx r0, r0, #0, #1
21+ sbfx r9, r0, #0, #1
22+ sbfx r0, r9, #0, #1
23+ sbfx r0, r0, #17, #1
24+ sbfx r0, r0, #0, #18
25+
26+ rbit r0, r0
27+ rbitne r0, r0
28+ rbit r9, r0
29+ rbit r0, r9
30+
31+ mls r0, r0, r0, r0
32+ mlsne r0, r0, r0, r0
33+ mls r9, r0, r0, r0
34+ mls r0, r9, r0, r0
35+ mls r0, r0, r9, r0
36+ mls r0, r0, r0, r9
37+
38+ movw r0, #0
39+ movt r0, #0
40+ movwne r0, #0
41+ movw r9, #0
42+ movw r0, #0x0999
43+ movw r0, #0x9000
44+
45+ @ for these, we must avoid write-back warnings
46+ ldrht r0, [r9]
47+ ldrsht r0, [r9]
48+ ldrsbt r0, [r9]
49+ strht r0, [r9]
50+ ldrneht r0, [r9]
51+
52+ ldrht r9, [r0], r9
53+ ldrht r9, [r0], -r9
54+ ldrht r9, [r0], #0x99
55+ ldrht r9, [r0], #-0x99
--- /dev/null
+++ b/gas/testsuite/gas/arm/thumbv6k.d
@@ -0,0 +1,15 @@
1+#name: THUMB V6K instructions
2+#as: -march=armv6k -mthumb
3+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
4+
5+.*: +file format .*arm.*
6+
7+Disassembly of section .text:
8+0+000 <[^>]*> bf10 * yield
9+0+002 <[^>]*> bf20 * wfe
10+0+004 <[^>]*> bf30 * wfi
11+0+006 <[^>]*> bf40 * sev
12+0+008 <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
13+0+00a <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
14+0+00c <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
15+0+00e <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
--- /dev/null
+++ b/gas/testsuite/gas/arm/thumbv6k.s
@@ -0,0 +1,14 @@
1+ .text
2+ .align 0
3+ .thumb
4+label:
5+ yield
6+ wfe
7+ wfi
8+ sev
9+ # arm-aout wants the segment padded to an 16-byte boundary;
10+ # do this explicitly so it's consistent for all object formats.
11+ nop
12+ nop
13+ nop
14+ nop