diff options
author | JUNG DONG-HEON <dheon.jung@samsung.com> | 2020-06-08 10:20:14 +0900 |
---|---|---|
committer | 이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com> | 2020-06-18 07:38:46 +0900 |
commit | 7d6fa13ce85654174b882c9e934c000dfd2222fe (patch) | |
tree | 46c473fdedd5747c2ad281170c0416407b74a503 /src/vm/amd64/cgencpu.h | |
parent | 488be5d790020489f7f4dd7d43680f43b101dbd4 (diff) | |
download | coreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.tar.gz coreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.tar.bz2 coreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.zip |
Implement instantiating and unboxing through portable stublinker code… (#106)
* Implement instantiating and unboxing through portable stublinker code
- Handle only the cases with register to register moves
- Shares abi processing logic with delegate shuffle thunk creation
- Architecture specific logic is relatively simple
- Do not permit use of HELPERREG in computed instantiating stubs
- Fix GetArgLoc such that it works on all architectures and OS combinations
Add a JIT stress test case for testing all of the various combinations
- Use the same calling convention test architecture that was used as part of tail call work
Rename secure delegates to wrapper delegates
- Secure delegates are no longer a feature of the runtime
- But the wrapper delegate lives on as a workaround for a weird detail of the ARM32 abi
Diffstat (limited to 'src/vm/amd64/cgencpu.h')
-rw-r--r-- | src/vm/amd64/cgencpu.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/vm/amd64/cgencpu.h b/src/vm/amd64/cgencpu.h index 619fd4ba64..61586c3d75 100644 --- a/src/vm/amd64/cgencpu.h +++ b/src/vm/amd64/cgencpu.h @@ -35,7 +35,6 @@ class ComCallMethodDesc; // // functions implemented in AMD64 assembly // -EXTERN_C void InstantiatingMethodStubWorker(void); EXTERN_C void SinglecastDelegateInvokeStub(); EXTERN_C void FastCallFinalizeWorker(Object *obj, PCODE funcPtr); @@ -274,7 +273,9 @@ typedef DPTR(struct FloatArgumentRegisters) PTR_FloatArgumentRegisters; struct FloatArgumentRegisters { M128A d[NUM_FLOAT_ARGUMENT_REGISTERS]; // xmm0-xmm7 }; - +#else +// Windows x64 calling convention uses 4 registers for floating point data +#define NUM_FLOAT_ARGUMENT_REGISTERS 4 #endif |