faults.cc (7720:65d338a8dba4) faults.cc (8063:eea37fdcfc11)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

179}
180
181void
182SupervisorCall::invoke(ThreadContext *tc, StaticInstPtr inst)
183{
184 // As of now, there isn't a 32 bit thumb version of this instruction.
185 assert(!machInst.bigThumb);
186 uint32_t callNum;
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

179}
180
181void
182SupervisorCall::invoke(ThreadContext *tc, StaticInstPtr inst)
183{
184 // As of now, there isn't a 32 bit thumb version of this instruction.
185 assert(!machInst.bigThumb);
186 uint32_t callNum;
187 if (machInst.thumb) {
188 callNum = bits(machInst, 7, 0);
189 } else {
190 callNum = bits(machInst, 23, 0);
191 }
192 if (callNum == 0) {
193 callNum = tc->readIntReg(INTREG_R7);
194 }
187 callNum = tc->readIntReg(INTREG_R7);
195 tc->syscall(callNum);
196
197 // Advance the PC since that won't happen automatically.
198 PCState pc = tc->pcState();
199 assert(inst);
200 inst->advancePC(pc);
201 tc->pcState(pc);
202}

--- 39 unchanged lines hidden ---
188 tc->syscall(callNum);
189
190 // Advance the PC since that won't happen automatically.
191 PCState pc = tc->pcState();
192 assert(inst);
193 inst->advancePC(pc);
194 tc->pcState(pc);
195}

--- 39 unchanged lines hidden ---