MCPcopy Create free account
hub / github.com/beefytech/Beef / AddParamValue

Method AddParamValue

IDEHelper/WinDebugger.cpp:4323–4365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4321}
4322
4323void WinDebugger::AddParamValue(int paramIdx, bool hadThis, CPURegisters* registers, const DbgTypedValue& typedValue)
4324{
4325#if BF_DBG_32
4326 PushValue(registers, typedValue);
4327#else
4328 int regIdx = paramIdx + (hadThis ? 1 : 0);
4329 if (typedValue.mType->IsFloat())
4330 {
4331 PushValue(registers, typedValue);
4332 if (regIdx < 4)
4333 {
4334 if (typedValue.mType->mTypeCode == DbgType_Single)
4335 {
4336 registers->mXmmRegsArray[regIdx].f[0] = typedValue.mSingle;
4337 }
4338 else
4339 {
4340 registers->mXmmDRegsArray[regIdx].d[0] = typedValue.mDouble;
4341 }
4342 }
4343 }
4344 else
4345 {
4346 PushValue(registers, typedValue);
4347 if (regIdx < 4)
4348 {
4349 int64 val;
4350 if (typedValue.mType->IsCompositeType())
4351 val = typedValue.mSrcAddress;
4352 else
4353 val = typedValue.mPtr;
4354 if (regIdx == 0)
4355 registers->mIntRegs.rcx = val;
4356 else if (regIdx == 1)
4357 registers->mIntRegs.rdx = val;
4358 else if (regIdx == 2)
4359 registers->mIntRegs.r8 = val;
4360 else if (regIdx == 3)
4361 registers->mIntRegs.r9 = val;
4362 }
4363 }
4364#endif
4365}
4366
4367bool WinDebugger::CheckNeedsSRetArgument(DbgType* retType)
4368{

Callers 1

CreateCallMethod · 0.80

Calls 2

IsCompositeTypeMethod · 0.80
IsFloatMethod · 0.45

Tested by

no test coverage detected