process.cc (6701:4842482e1bd1) process.cc (7532:3f6413fc37a2)
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * Copyright (c) 2007-2008 The Florida State University
4 * Copyright (c) 2009 The University of Edinburgh
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are

--- 418 unchanged lines hidden (view full) ---

427{
428 if (callnum < 0 || callnum > Num_Syscall_Descs)
429 return NULL;
430
431 return &syscallDescs[callnum];
432}
433
434void
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * Copyright (c) 2007-2008 The Florida State University
4 * Copyright (c) 2009 The University of Edinburgh
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are

--- 418 unchanged lines hidden (view full) ---

427{
428 if (callnum < 0 || callnum > Num_Syscall_Descs)
429 return NULL;
430
431 return &syscallDescs[callnum];
432}
433
434void
435PowerLinuxProcess::startup()
435PowerLinuxProcess::initState()
436{
436{
437 PowerLiveProcess::startup();
437 PowerLiveProcess::initState();
438}
439
440PowerISA::IntReg
441PowerLinuxProcess::getSyscallArg(ThreadContext *tc, int &i)
442{
443 // Linux apparently allows more parameter than the ABI says it should.
444 // This limit may need to be increased even further.
445 assert(i < 6);
446 return tc->readIntReg(ArgumentReg0 + i++);
447}
448
449void
450PowerLinuxProcess::setSyscallArg(ThreadContext *tc, int i, PowerISA::IntReg val)
451{
452 // Linux apparently allows more parameter than the ABI says it should.
453 // This limit may need to be increased even further.
454 assert(i < 6);
455 tc->setIntReg(ArgumentReg0 + i, val);
456}
438}
439
440PowerISA::IntReg
441PowerLinuxProcess::getSyscallArg(ThreadContext *tc, int &i)
442{
443 // Linux apparently allows more parameter than the ABI says it should.
444 // This limit may need to be increased even further.
445 assert(i < 6);
446 return tc->readIntReg(ArgumentReg0 + i++);
447}
448
449void
450PowerLinuxProcess::setSyscallArg(ThreadContext *tc, int i, PowerISA::IntReg val)
451{
452 // Linux apparently allows more parameter than the ABI says it should.
453 // This limit may need to be increased even further.
454 assert(i < 6);
455 tc->setIntReg(ArgumentReg0 + i, val);
456}