utility.cc revision 6759
16757SAli.Saidi@ARM.com/* 26757SAli.Saidi@ARM.com * Copyright (c) 2009 ARM Limited 36757SAli.Saidi@ARM.com * All rights reserved. 46757SAli.Saidi@ARM.com * 56757SAli.Saidi@ARM.com * Redistribution and use in source and binary forms, with or without 66757SAli.Saidi@ARM.com * modification, are permitted provided that the following conditions are 76757SAli.Saidi@ARM.com * met: redistributions of source code must retain the above copyright 86757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer; 96757SAli.Saidi@ARM.com * redistributions in binary form must reproduce the above copyright 106757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer in the 116757SAli.Saidi@ARM.com * documentation and/or other materials provided with the distribution; 126757SAli.Saidi@ARM.com * neither the name of the copyright holders nor the names of its 136757SAli.Saidi@ARM.com * contributors may be used to endorse or promote products derived from 146757SAli.Saidi@ARM.com * this software without specific prior written permission. 156757SAli.Saidi@ARM.com * 166757SAli.Saidi@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 176757SAli.Saidi@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 186757SAli.Saidi@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 196757SAli.Saidi@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 206757SAli.Saidi@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 216757SAli.Saidi@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 226757SAli.Saidi@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 236757SAli.Saidi@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 246757SAli.Saidi@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 256757SAli.Saidi@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 266757SAli.Saidi@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 276757SAli.Saidi@ARM.com * 286757SAli.Saidi@ARM.com * Authors: Ali Saidi 296757SAli.Saidi@ARM.com */ 306735Sgblack@eecs.umich.edu 316757SAli.Saidi@ARM.com 326757SAli.Saidi@ARM.com#include "arch/arm/faults.hh" 336757SAli.Saidi@ARM.com#include "arch/arm/utility.hh" 346757SAli.Saidi@ARM.com#include "cpu/thread_context.hh" 356735Sgblack@eecs.umich.edu 366735Sgblack@eecs.umich.edu 376735Sgblack@eecs.umich.edunamespace ArmISA { 386735Sgblack@eecs.umich.edu 396735Sgblack@eecs.umich.eduvoid 406735Sgblack@eecs.umich.eduinitCPU(ThreadContext *tc, int cpuId) 416735Sgblack@eecs.umich.edu{ 426735Sgblack@eecs.umich.edu // Reset CP15?? What does that mean -- ali 436735Sgblack@eecs.umich.edu 446735Sgblack@eecs.umich.edu // FPEXC.EN = 0 456735Sgblack@eecs.umich.edu 466757SAli.Saidi@ARM.com static Fault reset = new Reset; 476735Sgblack@eecs.umich.edu if (cpuId == 0) 486735Sgblack@eecs.umich.edu reset->invoke(tc); 496735Sgblack@eecs.umich.edu} 506735Sgblack@eecs.umich.edu 516757SAli.Saidi@ARM.comuint64_t getArgument(ThreadContext *tc, int number, bool fp) { 526757SAli.Saidi@ARM.com#if FULL_SYSTEM 536757SAli.Saidi@ARM.com panic("getArgument() not implemented for ARM!\n"); 546757SAli.Saidi@ARM.com#else 556757SAli.Saidi@ARM.com panic("getArgument() only implemented for FULL_SYSTEM\n"); 566757SAli.Saidi@ARM.com M5_DUMMY_RETURN 576757SAli.Saidi@ARM.com#endif 586757SAli.Saidi@ARM.com} 596757SAli.Saidi@ARM.com 606759SAli.Saidi@ARM.comFault 616759SAli.Saidi@ARM.comsetCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2) 626759SAli.Saidi@ARM.com{ 636759SAli.Saidi@ARM.com return new UnimpFault(csprintf("MCR CP15: CRn: %d opc1: %d CRm: %d opc1: %d\n", 646759SAli.Saidi@ARM.com CRn, opc1, CRm, opc2)); 656757SAli.Saidi@ARM.com} 666759SAli.Saidi@ARM.com 676759SAli.Saidi@ARM.comFault 686759SAli.Saidi@ARM.comreadCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2) 696759SAli.Saidi@ARM.com{ 706759SAli.Saidi@ARM.com return new UnimpFault(csprintf("MRC CP15: CRn: %d opc1: %d CRm: %d opc1: %d\n", 716759SAli.Saidi@ARM.com CRn, opc1, CRm, opc2)); 726759SAli.Saidi@ARM.com 736759SAli.Saidi@ARM.com} 746759SAli.Saidi@ARM.com 756759SAli.Saidi@ARM.com 766759SAli.Saidi@ARM.com} 77