Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(395)

Side by Side Diff: source/libvpx/build/make/ads2gas.pl

Issue 7671004: Update libvpx snapshot to v0.9.7-p1 (Cayuga). (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/build/make/Makefile ('k') | source/libvpx/build/make/ads2gas_apple.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/perl 1 #!/usr/bin/perl
2 ## 2 ##
3 ## Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3 ## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
4 ## 4 ##
5 ## Use of this source code is governed by a BSD-style license 5 ## Use of this source code is governed by a BSD-style license
6 ## that can be found in the LICENSE file in the root of the source 6 ## that can be found in the LICENSE file in the root of the source
7 ## tree. An additional intellectual property rights grant can be found 7 ## tree. An additional intellectual property rights grant can be found
8 ## in the file PATENTS. All contributing project authors may 8 ## in the file PATENTS. All contributing project authors may
9 ## be found in the AUTHORS file in the root of the source tree. 9 ## be found in the AUTHORS file in the root of the source tree.
10 ## 10 ##
11 11
12 12
13 # ads2gas.pl 13 # ads2gas.pl
14 # Author: Eric Fung (efung (at) acm.org) 14 # Author: Eric Fung (efung (at) acm.org)
15 # 15 #
16 # Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format 16 # Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format
17 # 17 #
18 # Usage: cat inputfile | perl ads2gas.pl > outputfile 18 # Usage: cat inputfile | perl ads2gas.pl > outputfile
19 # 19 #
20 print "@ This file was created from a .asm file\n"; 20 print "@ This file was created from a .asm file\n";
21 print "@ using the ads2gas.pl script.\n"; 21 print "@ using the ads2gas.pl script.\n";
22 print "\t.equ DO1STROUNDING, 0\n"; 22 print "\t.equ DO1STROUNDING, 0\n";
23 23
24 # Stack of procedure names.
25 @proc_stack = ();
26
24 while (<STDIN>) 27 while (<STDIN>)
25 { 28 {
29 # Load and store alignment
30 s/@/,:/g;
31
26 # Comment character 32 # Comment character
27 s/;/@/g; 33 s/;/@/g;
28 34
29 # Hexadecimal constants prefaced by 0x 35 # Hexadecimal constants prefaced by 0x
30 s/#&/#0x/g; 36 s/#&/#0x/g;
31 37
32 # Convert :OR: to | 38 # Convert :OR: to |
33 s/:OR:/ | /g; 39 s/:OR:/ | /g;
34 40
35 # Convert :AND: to & 41 # Convert :AND: to &
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 s/=+/==/g; 78 s/=+/==/g;
73 } 79 }
74 80
75 # Convert INCLUDE to .INCLUDE "file" 81 # Convert INCLUDE to .INCLUDE "file"
76 s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/; 82 s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/;
77 83
78 # Code directive (ARM vs Thumb) 84 # Code directive (ARM vs Thumb)
79 s/CODE([0-9][0-9])/.code $1/; 85 s/CODE([0-9][0-9])/.code $1/;
80 86
81 # No AREA required 87 # No AREA required
82 s/^\s*AREA.*$/.text/; 88 # But ALIGNs in AREA must be obeyed
89 s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/;
90 # If no ALIGN, strip the AREA and align to 4 bytes
91 s/^\s*AREA.*$/.text\n.p2align 2/;
83 92
84 # DCD to .word 93 # DCD to .word
85 # This one is for incoming symbols 94 # This one is for incoming symbols
86 s/DCD\s+\|(\w*)\|/.long $1/; 95 s/DCD\s+\|(\w*)\|/.long $1/;
87 96
88 # DCW to .short 97 # DCW to .short
89 s/DCW\s+\|(\w*)\|/.short $1/; 98 s/DCW\s+\|(\w*)\|/.short $1/;
90 s/DCW(.*)/.short $1/; 99 s/DCW(.*)/.short $1/;
91 100
92 # Constants defined in scope 101 # Constants defined in scope
(...skipping 14 matching lines...) Expand all
107 116
108 # No vertical bars required; make additional symbol with prepended 117 # No vertical bars required; make additional symbol with prepended
109 # underscore 118 # underscore
110 s/^\|(\$?\w+)\|/_$1\n\t$1:/g; 119 s/^\|(\$?\w+)\|/_$1\n\t$1:/g;
111 120
112 # Labels need trailing colon 121 # Labels need trailing colon
113 # s/^(\w+)/$1:/ if !/EQU/; 122 # s/^(\w+)/$1:/ if !/EQU/;
114 # put the colon at the end of the line in the macro 123 # put the colon at the end of the line in the macro
115 s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/; 124 s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/;
116 125
117 # Strip ALIGN 126 # ALIGN directive
118 s/\sALIGN/@ ALIGN/g; 127 s/ALIGN/.balign/g;
119 128
120 # Strip ARM 129 # Strip ARM
121 s/\sARM/@ ARM/g; 130 s/\sARM/@ ARM/g;
122 131
123 # Strip REQUIRE8 132 # Strip REQUIRE8
124 #s/\sREQUIRE8/@ REQUIRE8/g; 133 #s/\sREQUIRE8/@ REQUIRE8/g;
125 s/\sREQUIRE8/@ /g; #EQU cause problem 134 s/\sREQUIRE8/@ /g; #EQU cause problem
126 135
127 # Strip PRESERVE8 136 # Strip PRESERVE8
128 s/\sPRESERVE8/@ PRESERVE8/g; 137 s/\sPRESERVE8/@ PRESERVE8/g;
129 138
130 # Strip PROC and ENDPROC 139 # Use PROC and ENDP to give the symbols a .size directive.
131 s/\sPROC/@/g; 140 # This makes them show up properly in debugging tools like gdb and valgrind.
132 s/\sENDP/@/g; 141 if (/\bPROC\b/)
142 {
143 my $proc;
144 /^_([\.0-9A-Z_a-z]\w+)\b/;
145 $proc = $1;
146 push(@proc_stack, $proc) if ($proc);
147 s/\bPROC\b/@ $&/;
148 }
149 if (/\bENDP\b/)
150 {
151 my $proc;
152 s/\bENDP\b/@ $&/;
153 $proc = pop(@proc_stack);
154 $_ = "\t.size $proc, .-$proc".$_ if ($proc);
155 }
133 156
134 # EQU directive 157 # EQU directive
135 s/(.*)EQU(.*)/.equ $1, $2/; 158 s/(.*)EQU(.*)/.equ $1, $2/;
136 159
137 # Begin macro definition 160 # Begin macro definition
138 if (/MACRO/) { 161 if (/MACRO/) {
139 $_ = <STDIN>; 162 $_ = <STDIN>;
140 s/^/.macro/; 163 s/^/.macro/;
141 s/\$//g; # remove formal param reference 164 s/\$//g; # remove formal param reference
142 s/;/@/g; # change comment characters 165 s/;/@/g; # change comment characters
143 } 166 }
144 167
145 # For macros, use \ to reference formal params 168 # For macros, use \ to reference formal params
146 s/\$/\\/g; # End macro definition 169 s/\$/\\/g; # End macro definition
147 s/MEND/.endm/; # No need to tell it where to stop assembling 170 s/MEND/.endm/; # No need to tell it where to stop assembling
148 next if /^\s*END\s*$/; 171 next if /^\s*END\s*$/;
149 print; 172 print;
150 } 173 }
174
175 # Mark that this object doesn't need an executable stack.
176 printf ("\t.section\t.note.GNU-stack,\"\",\%\%progbits\n");
OLDNEW
« no previous file with comments | « source/libvpx/build/make/Makefile ('k') | source/libvpx/build/make/ads2gas_apple.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698