summaryrefslogtreecommitdiff
path: root/vectors.pl
diff options
context:
space:
mode:
more or less take traps/interrupts
Diffstat (limited to 'vectors.pl')
-rwxr-xr-xvectors.pl25
1 files changed, 25 insertions, 0 deletions
diff --git a/vectors.pl b/vectors.pl
new file mode 100755
index 0000000..29187ba
--- /dev/null
+++ b/vectors.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+# generate vectors.S, the trap/interrupt entry points.
+# there has to be one entry point per interrupt number
+# since otherwise there's no way to tell the interrupt
+# number.
+
+print "/* generated by vectors.pl */\n";
+print ".text\n";
+print ".globl alltraps\n";
+for(my $i = 0; $i < 256; $i++){
+ print ".globl vector$i\n";
+ print "vector$i:\n";
+ if(($i < 8 || $i > 14) && $i != 17){
+ print "\tpushl \$0\n";
+ }
+ print "\tpushl $i\n";
+ print "\tjmp alltraps\n";
+}
+print ".data\n";
+print ".globl vectors\n";
+print "vectors:\n";
+for(my $i = 0; $i < 256; $i++){
+ print ".long vector$i\n";
+}