-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build infra changes to enable building a more universal cross target jit builds #41126
Changes from 5 commits
906d468
83ed473
482e8c3
824419d
a56cc15
3d359df
d471312
1afd7e1
72dd26d
ef86678
7d3c823
db74ff8
d7a5a91
8b184d7
fa08b56
0f420f6
bbeceaf
b0703f7
f5e1064
c2a2789
42b44da
92fe566
8da95fb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6422,7 +6422,7 @@ unsigned char emitter::emitOutputLong(BYTE* dst, ssize_t val) | |
|
||
unsigned char emitter::emitOutputSizeT(BYTE* dst, ssize_t val) | ||
{ | ||
#if !TARGET_64BIT | ||
#if !defined(TARGET_64BIT) | ||
MISALIGNED_WR_I4(dst, (int)val); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This seems wrong. It seems like we should rename There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Eh, I'd prefer naming changes be done by the jit team for the jit team in a separate pr. All of the emit functions take ssize_t, regardless of the size of the generated bits. |
||
#else | ||
MISALIGNED_WR_ST(dst, val); | ||
|
@@ -7028,7 +7028,7 @@ void emitter::emitNxtIG(bool extend) | |
* emitGetInsSC: Get the instruction's constant value. | ||
*/ | ||
|
||
target_ssize_t emitter::emitGetInsSC(instrDesc* id) | ||
cnsval_ssize_t emitter::emitGetInsSC(instrDesc* id) | ||
{ | ||
#ifdef TARGET_ARM // should it be TARGET_ARMARCH? Why do we need this? Note that on ARM64 we store scaled immediates | ||
// for some formats | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2013,6 +2013,15 @@ typedef int target_ssize_t; | |
C_ASSERT(sizeof(target_size_t) == TARGET_POINTER_SIZE); | ||
C_ASSERT(sizeof(target_ssize_t) == TARGET_POINTER_SIZE); | ||
|
||
#if defined(TARGET_X86) | ||
typedef ssize_t cnsval_ssize_t; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's hard to understand why this is specific to target_x86. Why not target_arm or 32-bit targets? Can you add a comment to explain? |
||
typedef size_t cnsval_size_t; | ||
#else | ||
typedef target_ssize_t cnsval_ssize_t; | ||
typedef target_size_t cnsval_size_t; | ||
#endif | ||
|
||
|
||
/*****************************************************************************/ | ||
#endif // TARGET_H_ | ||
/*****************************************************************************/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need multiple jitinterface-wrapper libraries?
(Since crossgen2 basically ships selfcontained with the SDK, wouldn't the bitness of jitinterface.dll always match the bitness of coreclr.dll that the compiler is running with?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need them in the shipping scenarios, but it enables some mix and matching of bits in some test infra work I'm lookin at. In particular, it makes it fairly simple to have a crossgen2 that is easy to use in crosstargeting scenarios in the core_root directory, especially on Windows. (Since the default available dotnet in our Windows build environment is 64bit only, this small tweak makes it easy to have a crossgen2 that will just work for developers)