Changed MIPS and Alpha to pass the syscall number to the syscall function
authorGabe Black <gblack@eecs.umich.edu>
Tue, 18 Apr 2006 13:44:24 +0000 (09:44 -0400)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 18 Apr 2006 13:44:24 +0000 (09:44 -0400)
arch/alpha/isa/decoder.isa:
    Fixed up Alpha to pass the syscall number directly to the syscall function.
arch/mips/isa/decoder.isa:
    Fixed up MIPS to pass the syscall number directly to the syscall function.
arch/mips/isa/operands.isa:
    Added an R2 operand which is passed to the syscall function as the syscall number to use.

--HG--
extra : convert_revision : 066d486cd6a2761b29e413c6d526c268788975f3

arch/alpha/isa/decoder.isa
arch/mips/isa/decoder.isa
arch/mips/isa/operands.isa

index e09673269254d7348149ef88b8d568943cd6fcfc..3d38e91f94c5dbefea99036d69e77312ed3c8cbd 100644 (file)
@@ -693,7 +693,7 @@ decode OPCODE default Unknown::unknown() {
                 SimExit(curTick, "halt instruction encountered");
             }}, IsNonSpeculative);
             0x83: callsys({{
-                xc->syscall();
+                xc->syscall(R0);
             }}, IsNonSpeculative);
             // Read uniq reg into ABI return value register (r0)
             0x9e: rduniq({{ R0 = Runiq; }});
index f5dd3d911f7690ca810ba9aca452f810b33719d1..2df2b0403c135d5728e0d7779aa006dd0b2203b6 100644 (file)
@@ -89,7 +89,7 @@ decode OPCODE_HI default Unknown::unknown() {
                 }
 
                 format BasicOp {
-                    0x4: syscall({{ xc->syscall(); }},IsNonSpeculative);
+                    0x4: syscall({{ xc->syscall(R2); }},IsNonSpeculative);
                     0x5: break({{ panic("Not implemented break yet"); }},IsNonSpeculative);
                     0x7: sync({{  panic("Not implemented sync yet"); }},IsNonSpeculative);
                 }
index 13870337b9d76618e65f4b0f639c931b554bab41..c01496dc9a8127416a64ea1f3f1a3fff6f4c8976 100644 (file)
@@ -18,6 +18,7 @@ def operands {{
     'Rt': ('IntReg', 'uw', 'RT', 'IsInteger', 3),
     'r31': ('IntReg', 'uw','R31','IsInteger', 4),
     'R0':  ('IntReg', 'uw','R0', 'IsInteger', 5),
+    'R2':  ('IntReg', 'uw','2', 'IsInteger', 5),
 
     'IntImm': ('IntReg', 'uw', 'INTIMM', 'IsInteger', 3),