vectors64.pl (710B)
1 #!/usr/bin/perl -w 2 3 # Generate vectors.S, the trap/interrupt entry points. 4 # There has to be one entry point per interrupt number 5 # since otherwise there's no way for trap() to discover 6 # the interrupt number. 7 8 print "# generated by vectors.pl - do not edit\n"; 9 print "# handlers\n"; 10 print ".globl alltraps\n"; 11 for(my $i = 0; $i < 256; $i++){ 12 print ".globl vector$i\n"; 13 print "vector$i:\n"; 14 if(!($i == 8 || ($i >= 10 && $i <= 14) || $i == 17)){ 15 print " push \$0\n"; 16 } 17 print " push \$$i\n"; 18 print " jmp alltraps\n"; 19 } 20 21 print "\n# vector table\n"; 22 print ".data\n"; 23 print ".globl vectors\n"; 24 print "vectors:\n"; 25 for(my $i = 0; $i < 256; $i++){ 26 print " .quad vector$i\n"; 27 }