X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fthreads%2Fintr-stubs.pl;h=22eaf59d339f4ee216e77cf9938f82140a5f6b70;hb=447755c02e674e65801fbb783823009e32458753;hp=ea20e9668ede5de1669138957c5e205079c6e3f4;hpb=1824e4d39b4f042474d29ac91ee59b326ab00da1;p=pintos-anon diff --git a/src/threads/intr-stubs.pl b/src/threads/intr-stubs.pl index ea20e96..22eaf59 100755 --- a/src/threads/intr-stubs.pl +++ b/src/threads/intr-stubs.pl @@ -1,9 +1,10 @@ #! /usr/bin/perl print <<'EOF'; -#include "mmu.h" +#include "loader.h" - .globl intr_stubs + .data +.globl intr_stubs intr_stubs: EOF @@ -11,11 +12,15 @@ for $i (0...255) { $x = sprintf ("%02x", $i); print "\t.long intr${x}_stub\n"; } -print "\n"; + +print <<'EOF'; + + .text +EOF for $i (0...255) { $x = sprintf ("%02x", $i); - print "\t.globl intr${x}_stub\n"; + print ".globl intr${x}_stub\n"; print "intr${x}_stub:\n"; print "\tpushl \$0\n" if ($i != 8 && $i != 10 && $i != 11 @@ -26,7 +31,6 @@ for $i (0...255) { print <<'EOF'; intr_entry: - # FIXME: build a fake stack frame to improve backtraces. # Save caller's registers. pushl %ds pushl %es @@ -40,13 +44,12 @@ intr_entry: # Call handler. pushl %esp - .globl intr_handler +.globl intr_handler call intr_handler - - .globl intr_exit -intr_exit: addl $4, %esp +.globl intr_exit +intr_exit: # Restore caller's registers. popal popl %es