projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Check all return values.
[pintos-anon]
/
src
/
threads
/
intr-stubs.pl
diff --git
a/src/threads/intr-stubs.pl
b/src/threads/intr-stubs.pl
index 45f4fa320de011addd823ec6c354b45d95530ec6..6ac5a8df527c2a4f7951774d1af7dfedfbbae439 100755
(executable)
--- a/
src/threads/intr-stubs.pl
+++ b/
src/threads/intr-stubs.pl
@@
-3,7
+3,8
@@
print <<'EOF';
#include "mmu.h"
print <<'EOF';
#include "mmu.h"
- .globl intr_stubs
+ .data
+.globl intr_stubs
intr_stubs:
EOF
intr_stubs:
EOF
@@
-11,19
+12,26
@@
for $i (0...255) {
$x = sprintf ("%02x", $i);
print "\t.long intr${x}_stub\n";
}
$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);
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 "intr${x}_stub:\n";
- print "\tpushl \$0\n" if $i != 8 && $i != 10 && $i != 11 && $i != 13 && $i != 14 && $i != 17;
+ print "\tpushl \$0\n"
+ if ($i != 8 && $i != 10 && $i != 11
+ && $i != 13 && $i != 14 && $i != 17);
print "\tpushl \$0x$x\n";
print "\tjmp intr_entry\n";
}
print <<'EOF';
intr_entry:
print "\tpushl \$0x$x\n";
print "\tjmp intr_entry\n";
}
print <<'EOF';
intr_entry:
+ # FIXME: build a fake stack frame to improve backtraces.
# Save caller's registers.
pushl %ds
pushl %es
# Save caller's registers.
pushl %ds
pushl %es
@@
-37,10
+45,12
@@
intr_entry:
# Call handler.
pushl %esp
# Call handler.
pushl %esp
-
.globl intr_handler
+.globl intr_handler
call intr_handler
addl $4, %esp
call intr_handler
addl $4, %esp
+.globl intr_exit
+intr_exit:
# Restore caller's registers.
popal
popl %es
# Restore caller's registers.
popal
popl %es