data64.isa (12258:08990d24fe41) | data64.isa (12280:a44a2326a02b) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2011-2013, 2016 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 337 unchanged lines hidden (view full) --- 346 msrMrs64TrapToMon(flat_idx, CptrEl364, el, &is_vfp_neon)) { 347 return std::make_shared<SecureMonitorTrap>( 348 machInst, 349 is_vfp_neon ? 0x1E00000 : imm, 350 is_vfp_neon ? EC_TRAPPED_SIMD_FP : EC_TRAPPED_MSR_MRS_64); 351 } 352 ''' 353 | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2011-2013, 2016 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 337 unchanged lines hidden (view full) --- 346 msrMrs64TrapToMon(flat_idx, CptrEl364, el, &is_vfp_neon)) { 347 return std::make_shared<SecureMonitorTrap>( 348 machInst, 349 is_vfp_neon ? 0x1E00000 : imm, 350 is_vfp_neon ? EC_TRAPPED_SIMD_FP : EC_TRAPPED_MSR_MRS_64); 351 } 352 ''' 353 |
354 buildDataXImmInst("mrs", ''' | 354 mrsCode = ''' |
355 MiscRegIndex flat_idx = (MiscRegIndex) xc->tcBase()-> 356 flattenRegId(RegId(MiscRegClass, op1)).index(); 357 CPSR cpsr = Cpsr; 358 ExceptionLevel el = (ExceptionLevel) (uint8_t) cpsr.el; 359 %s 360 XDest = MiscOp1_ud; | 355 MiscRegIndex flat_idx = (MiscRegIndex) xc->tcBase()-> 356 flattenRegId(RegId(MiscRegClass, op1)).index(); 357 CPSR cpsr = Cpsr; 358 ExceptionLevel el = (ExceptionLevel) (uint8_t) cpsr.el; 359 %s 360 XDest = MiscOp1_ud; |
361 ''' % (msrMrs64EnabledCheckCode % ('Read', 'true'),), 362 ["IsSerializeBefore"]) | 361 ''' % (msrMrs64EnabledCheckCode % ('Read', 'true'),) |
363 | 362 |
363 mrsIop = InstObjParams("mrs", "Mrs64", "RegMiscRegImmOp64", 364 mrsCode, 365 ["IsSerializeBefore"]) 366 header_output += RegMiscRegOp64Declare.subst(mrsIop) 367 decoder_output += RegMiscRegOp64Constructor.subst(mrsIop) 368 exec_output += BasicExecute.subst(mrsIop) 369 |
|
364 buildDataXRegInst("mrsNZCV", 1, ''' 365 CPSR cpsr = 0; 366 cpsr.nz = CondCodesNZ; 367 cpsr.c = CondCodesC; 368 cpsr.v = CondCodesV; 369 XDest = cpsr; 370 ''') 371 | 370 buildDataXRegInst("mrsNZCV", 1, ''' 371 CPSR cpsr = 0; 372 cpsr.nz = CondCodesNZ; 373 cpsr.c = CondCodesC; 374 cpsr.v = CondCodesV; 375 XDest = cpsr; 376 ''') 377 |
372 buildDataXImmInst("msr", ''' | 378 msrCode = ''' |
373 MiscRegIndex flat_idx = (MiscRegIndex) xc->tcBase()-> 374 flattenRegId(RegId(MiscRegClass, dest)).index(); 375 CPSR cpsr = Cpsr; 376 ExceptionLevel el = (ExceptionLevel) (uint8_t) cpsr.el; 377 %s 378 MiscDest_ud = XOp1; | 379 MiscRegIndex flat_idx = (MiscRegIndex) xc->tcBase()-> 380 flattenRegId(RegId(MiscRegClass, dest)).index(); 381 CPSR cpsr = Cpsr; 382 ExceptionLevel el = (ExceptionLevel) (uint8_t) cpsr.el; 383 %s 384 MiscDest_ud = XOp1; |
379 ''' % (msrMrs64EnabledCheckCode % ('Write', 'false'),), 380 ["IsSerializeAfter", "IsNonSpeculative"]) | 385 ''' % (msrMrs64EnabledCheckCode % ('Write', 'false'),) |
381 | 386 |
387 msrIop = InstObjParams("msr", "Msr64", "MiscRegRegImmOp64", 388 msrCode, 389 ["IsSerializeAfter", "IsNonSpeculative"]) 390 header_output += MiscRegRegOp64Declare.subst(msrIop) 391 decoder_output += MiscRegRegOp64Constructor.subst(msrIop) 392 exec_output += BasicExecute.subst(msrIop) 393 394 |
|
382 buildDataXRegInst("msrNZCV", 1, ''' 383 CPSR cpsr = XOp1; 384 CondCodesNZ = cpsr.nz; 385 CondCodesC = cpsr.c; 386 CondCodesV = cpsr.v; 387 ''') 388 389 msrdczva_ea_code = ''' --- 116 unchanged lines hidden --- | 395 buildDataXRegInst("msrNZCV", 1, ''' 396 CPSR cpsr = XOp1; 397 CondCodesNZ = cpsr.nz; 398 CondCodesC = cpsr.c; 399 CondCodesV = cpsr.v; 400 ''') 401 402 msrdczva_ea_code = ''' --- 116 unchanged lines hidden --- |