diff options
author | Ali Saidi <saidi@eecs.umich.edu> | 2009-07-27 00:51:01 -0700 |
---|---|---|
committer | Ali Saidi <saidi@eecs.umich.edu> | 2009-07-27 00:51:01 -0700 |
commit | 99831ed93821ee8efc3e7a4b6671c5b226d245e2 (patch) | |
tree | e9945e22340dc1c1c2f32d74720371dc4d078819 /src/arch/arm/linux/process.cc | |
parent | 0a18bc0d6cdcbf68f9bf01ae98ce0f678c62f16f (diff) | |
download | gem5-99831ed93821ee8efc3e7a4b6671c5b226d245e2.tar.xz |
ARM: Handle register indexed system calls.
Diffstat (limited to 'src/arch/arm/linux/process.cc')
-rw-r--r-- | src/arch/arm/linux/process.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/arm/linux/process.cc b/src/arch/arm/linux/process.cc index 7158acfff..c5320c1ab 100644 --- a/src/arch/arm/linux/process.cc +++ b/src/arch/arm/linux/process.cc @@ -448,7 +448,8 @@ ArmLinuxProcess::getDesc(int callnum) // Angel SWI syscalls are unsupported in this release if (callnum == 0x123456) { panic("Attempt to execute an ANGEL_SWI system call (newlib-related)"); - } else if ((callnum & 0x00f00000) == 0x00900000) { + } else if ((callnum & 0x00f00000) == 0x00900000 || + (callnum & 0xf0000) == 0xf0000) { callnum &= 0x000fffff; if ((callnum & 0x0f0000) == 0xf0000) { callnum -= 0x0f0001; |