summaryrefslogtreecommitdiff
path: root/driver/test_mangler
diff options
context:
space:
mode:
Diffstat (limited to 'driver/test_mangler')
-rw-r--r--driver/test_mangler29
1 files changed, 29 insertions, 0 deletions
diff --git a/driver/test_mangler b/driver/test_mangler
new file mode 100644
index 0000000000..96cf31ca68
--- /dev/null
+++ b/driver/test_mangler
@@ -0,0 +1,29 @@
+#! /usr/bin/perl
+# a simple wrapper to test a .s-file mangler
+# reads stdin, writes stdout
+
+push(@INC,"/net/dazdak/BUILDS/gransim-4.04/i386-unknown-linux/ghc/driver");
+
+$TargetPlatform = $ARGV[0]; shift; # nice error checking, Will
+
+require("ghc-asm.prl") || die "require mangler failed!\n";
+
+$SpX86Mangling = 1;
+$StolenX86Regs = 4;
+
+open(INP, "> /tmp/mangle1.$$") || die "Can't open tmp file 1\n";
+while (<>) {
+ print INP $_;
+}
+close(INP) || die "Can't close tmp file 1";
+
+&mangle_asm("/tmp/mangle1.$$", "/tmp/mangle2.$$");
+
+open(INP, "< /tmp/mangle2.$$") || die "Can't open tmp file 2\n";
+while (<INP>) {
+ print STDOUT $_;
+}
+close(INP) || die "Can't close tmp file 2";
+
+unlink("/tmp/mangle1.$$", "/tmp/mangle2.$$");
+exit(0);