@@ -1432,8 +1432,20 @@ HRESULT CordbThread::FindFrame(ICorDebugFrame ** ppFrame, FramePointer fp)
1432
1432
return E_FAIL;
1433
1433
}
1434
1434
1435
+
1435
1436
#if !defined(DBG_TARGET_ARM) // @ARMTODO
1436
1437
1438
+ #if defined(CROSS_COMPILE) && defined(_TARGET_ARM64_)
1439
+ extern " C" double FPFillR8 (void * pFillSlot)
1440
+ {
1441
+ _ASSERTE (!" nyi for platform" );
1442
+ return 0 ;
1443
+ }
1444
+ #elif defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
1445
+ extern " C" double FPFillR8 (void * pFillSlot);
1446
+ #endif
1447
+
1448
+
1437
1449
#if defined(_TARGET_X86_)
1438
1450
1439
1451
// CordbThread::Get32bitFPRegisters
@@ -1496,8 +1508,7 @@ void CordbThread::Get32bitFPRegisters(CONTEXT * pContext)
1496
1508
m_floatStackTop = floatStackTop;
1497
1509
} // CordbThread::Get32bitFPRegisters
1498
1510
1499
- #elif defined(_TARGET_AMD64_)
1500
- extern " C" double FPFillR8 (void * pFillSlot);
1511
+ #elif defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
1501
1512
1502
1513
// CordbThread::Get64bitFPRegisters
1503
1514
// Converts the values in the floating point register area of the context to real number values. See
@@ -1525,7 +1536,6 @@ void CordbThread::Get64bitFPRegisters(FPRegister64 * rgContextFPRegisters, int s
1525
1536
}
1526
1537
} // CordbThread::Get64bitFPRegisters
1527
1538
1528
-
1529
1539
#endif // _TARGET_X86_
1530
1540
1531
1541
// CordbThread::LoadFloatState
@@ -1556,6 +1566,10 @@ void CordbThread::LoadFloatState()
1556
1566
#elif defined(_TARGET_AMD64_)
1557
1567
// we have no fixed-value registers, so we begin with the first one and initialize all 16
1558
1568
Get64bitFPRegisters ((FPRegister64*) &(tempContext.Xmm0 ), 0 , 16 );
1569
+ #elif defined(_TARGET_ARM64_)
1570
+ Get64bitFPRegisters ((FPRegister64*) &(tempContext.V ), 0 , 32 );
1571
+ #else
1572
+ _ASSERTE (!" nyi for platform" );
1559
1573
#endif // !_TARGET_X86_
1560
1574
1561
1575
m_fFloatStateValid = true ;
@@ -6991,6 +7005,8 @@ HRESULT CordbNativeFrame::GetLocalRegisterValue(CorDebugRegister reg,
6991
7005
if ((reg >= REGISTER_X86_FPSTACK_0) && (reg <= REGISTER_X86_FPSTACK_7))
6992
7006
#elif defined(DBG_TARGET_AMD64)
6993
7007
if ((reg >= REGISTER_AMD64_XMM0) && (reg <= REGISTER_AMD64_XMM15))
7008
+ #elif defined(DBG_TARGET_ARM64)
7009
+ if ((reg >= REGISTER_ARM64_V0) && (reg <= REGISTER_ARM64_V31))
6994
7010
#endif
6995
7011
{
6996
7012
return GetLocalFloatingPointValue (reg, pType, ppValue);
@@ -7239,6 +7255,11 @@ HRESULT CordbNativeFrame::GetLocalFloatingPointValue(DWORD index,
7239
7255
(index <= REGISTER_AMD64_XMM15)))
7240
7256
return E_INVALIDARG;
7241
7257
index -= REGISTER_AMD64_XMM0;
7258
+ #elif defined(DBG_TARGET_ARM64)
7259
+ if (!((index >= REGISTER_ARM64_V0) &&
7260
+ (index <= REGISTER_ARM64_V31)))
7261
+ return E_INVALIDARG;
7262
+ index -= REGISTER_ARM64_V0;
7242
7263
#else
7243
7264
if (!((index >= REGISTER_X86_FPSTACK_0) &&
7244
7265
(index <= REGISTER_X86_FPSTACK_7)))
@@ -8941,20 +8962,25 @@ HRESULT CordbJITILFrame::GetReturnValueForILOffsetImpl(ULONG32 ILoffset, ICorDeb
8941
8962
8942
8963
HRESULT CordbJITILFrame::GetReturnValueForType (CordbType *pType, ICorDebugValue **ppReturnValue)
8943
8964
{
8944
- #if defined(DBG_TARGET_ARM) || defined(DBG_TARGET_ARM64)
8965
+ #if defined(DBG_TARGET_ARM)
8945
8966
return E_NOTIMPL;
8946
8967
#else
8947
8968
8969
+
8948
8970
#if defined(DBG_TARGET_X86)
8949
8971
const CorDebugRegister floatRegister = REGISTER_X86_FPSTACK_0;
8950
8972
#elif defined(DBG_TARGET_AMD64)
8951
8973
const CorDebugRegister floatRegister = REGISTER_AMD64_XMM0;
8974
+ #elif defined(DBG_TARGET_ARM64)
8975
+ const CorDebugRegister floatRegister = REGISTER_ARM64_V0;
8952
8976
#endif
8953
8977
8954
8978
#if defined(DBG_TARGET_X86)
8955
8979
const CorDebugRegister ptrRegister = REGISTER_X86_EAX;
8956
8980
#elif defined(DBG_TARGET_AMD64)
8957
8981
const CorDebugRegister ptrRegister = REGISTER_AMD64_RAX;
8982
+ #elif defined(DBG_TARGET_ARM64)
8983
+ const CorDebugRegister ptrRegister = REGISTER_ARM64_X0;
8958
8984
#endif
8959
8985
8960
8986
CorElementType corReturnType = pType->GetElementType ();
0 commit comments