Pop intr_handler arg inside intr_entry, not intr_exit.
print <<'EOF';
#include "mmu.h"
print <<'EOF';
#include "mmu.h"
.globl intr_stubs
intr_stubs:
EOF
.globl intr_stubs
intr_stubs:
EOF
$x = sprintf ("%02x", $i);
print "\t.long intr${x}_stub\n";
}
$x = sprintf ("%02x", $i);
print "\t.long intr${x}_stub\n";
}
+
+print <<'EOF';
+
+ .text
+EOF
for $i (0...255) {
$x = sprintf ("%02x", $i);
for $i (0...255) {
$x = sprintf ("%02x", $i);
pushl %esp
.globl intr_handler
call intr_handler
pushl %esp
.globl intr_handler
call intr_handler
.globl intr_exit
intr_exit:
.globl intr_exit
intr_exit:
# Restore caller's registers.
popal
# Restore caller's registers.
popal