[PATCH] Fix crashes on Linux/PPC64 ELFv1

Gbp-Pq: Name ppc64.patch
This commit is contained in:
Marcus Comstedt 2020-06-13 20:49:35 +02:00 committed by Lu zhiping
parent bd4d538dc4
commit 9e0fde6c9c
3 changed files with 4 additions and 4 deletions

View File

@ -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()

View File

@ -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;

View File

@ -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