mswasm -- Merge Source with ASM

This Perl script merges the source code in a .s file generate by the compilation of a file with the following command:

[you@yourmachine ~]% gcc -g -S foo.c

Compilation with -g -S produce a file with the following notation:

foo:
.LFB2:
 .file 1 "foo.c"
 .loc 1 4 0
 stwu 1,-16(1)
.LCFI0:
 stw 31,12(1)
.LCFI1:
 mr 31,1
.LCFI2:
 .loc 1 5 0
 li 0,42
 .loc 1 6 0
 mr 3,0
 lwz 11,0(1)
 lwz 31,-4(11)
 mr 1,11
 blr

The .loc 1 5 0 statement as the following meaning: "following lines are generated by file number 1 at line 5". The file which number is 1 is set with the statement .file 1 "foo.c"

mswasm acts as follow: it takes on standard input an assembly file generated with gcc -g -S and writes on standard output the assembly file with comments in place of .loc statements. In these comments mswasm puts the code from source file.

[you@yourmachine ~]% mswasm < foo.s>foo_out.s

The output for the previous assembly code is:

foo:
.LFB2:
 .file 1 "foo.c"
 /* foo.c 3-4 */
 /* int foo()
	 * {
	 */
 stwu 1,-16(1)
.LCFI0:
 stw 31,12(1)
.LCFI1:
 mr 31,1
.LCFI2:
 /* foo.c 5 */
 /* return 42; */
 li 0,42
 /* foo.c 6 */
 /* } */
 mr 3,0
 lwz 11,0(1)
 lwz 31,-4(11)
 mr 1,11
 blr


Download mswasm .
For any feedback, suggestion or comment feel free to mail to me at the address: francesco [dot] nidito [at] gmail [dot] com
Otto per mille sul sito UAAR Sbattezzamoci con l'UAAR

AltStyle によって変換されたページ (->オリジナル) /