mirror of https://gitee.com/openkylin/nodejs.git
[PATCH] Fix crashes on Linux/PPC64 ELFv1
Gbp-Pq: Name ppc64.patch
This commit is contained in:
parent
bd4d538dc4
commit
9e0fde6c9c
|
@ -2788,7 +2788,7 @@ void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
|
||||||
switch (call_descriptor->kind()) {
|
switch (call_descriptor->kind()) {
|
||||||
case CallDescriptor::kCallAddress: {
|
case CallDescriptor::kCallAddress: {
|
||||||
int misc_field = static_cast<int>(call_descriptor->ParameterCount());
|
int misc_field = static_cast<int>(call_descriptor->ParameterCount());
|
||||||
#if defined(_AIX)
|
#if ABI_USES_FUNCTION_DESCRIPTORS
|
||||||
// Highest misc_field bit is used on AIX to indicate if a CFunction call
|
// Highest misc_field bit is used on AIX to indicate if a CFunction call
|
||||||
// has function descriptor or not.
|
// has function descriptor or not.
|
||||||
misc_field |= call_descriptor->HasFunctionDescriptor()
|
misc_field |= call_descriptor->HasFunctionDescriptor()
|
||||||
|
|
|
@ -1026,7 +1026,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
||||||
Label start_call;
|
Label start_call;
|
||||||
bool isWasmCapiFunction =
|
bool isWasmCapiFunction =
|
||||||
linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
|
linkage()->GetIncomingDescriptor()->IsWasmCapiFunction();
|
||||||
#if defined(_AIX)
|
#if ABI_USES_FUNCTION_DESCRIPTORS
|
||||||
// AIX/PPC64BE Linux uses a function descriptor
|
// AIX/PPC64BE Linux uses a function descriptor
|
||||||
int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
|
int kNumParametersMask = kHasFunctionDescriptorBitMask - 1;
|
||||||
num_parameters = kNumParametersMask & misc_field;
|
num_parameters = kNumParametersMask & misc_field;
|
||||||
|
|
|
@ -122,7 +122,7 @@ class GeneratedCode {
|
||||||
|
|
||||||
DISABLE_CFI_ICALL Return Call(Args... args) {
|
DISABLE_CFI_ICALL Return Call(Args... args) {
|
||||||
// When running without a simulator we call the entry directly.
|
// When running without a simulator we call the entry directly.
|
||||||
#if V8_OS_AIX
|
#if ABI_USES_FUNCTION_DESCRIPTORS
|
||||||
// AIX ABI requires function descriptors (FD). Artificially create a pseudo
|
// AIX ABI requires function descriptors (FD). Artificially create a pseudo
|
||||||
// FD to ensure correct dispatch to generated code. The 'volatile'
|
// FD to ensure correct dispatch to generated code. The 'volatile'
|
||||||
// declaration is required to avoid the compiler from not observing the
|
// declaration is required to avoid the compiler from not observing the
|
||||||
|
@ -134,7 +134,7 @@ class GeneratedCode {
|
||||||
return fn(args...);
|
return fn(args...);
|
||||||
#else
|
#else
|
||||||
return fn_ptr_(args...);
|
return fn_ptr_(args...);
|
||||||
#endif // V8_OS_AIX
|
#endif // ABI_USES_FUNCTION_DESCRIPTORS
|
||||||
}
|
}
|
||||||
#endif // USE_SIMULATOR
|
#endif // USE_SIMULATOR
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue