Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 892499 Details for
Bug 931590
dev-qt/qtwebengine-5.15.13_p20240322: Missing ppc64 patches
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix for bug 924936
v8_regexp_ppc.patch (text/plain), 4.46 KB, created by
Marcus Comstedt
on 2024-05-08 16:25:30 UTC
(
hide
)
Description:
Fix for bug 924936
Filename:
MIME Type:
Creator:
Marcus Comstedt
Created:
2024-05-08 16:25:30 UTC
Size:
4.46 KB
patch
obsolete
>--- qtwebengine-5.15.12_p20240122/src/3rdparty/chromium/v8/src/regexp/ppc/regexp-macro-assembler-ppc.h.orig 2021-01-20 02:18:44.000000000 +0100 >+++ qtwebengine-5.15.12_p20240122/src/3rdparty/chromium/v8/src/regexp/ppc/regexp-macro-assembler-ppc.h 2024-03-23 15:44:16.821002068 +0100 >@@ -81,7 +81,7 @@ > // returning. > // {raw_code} is an Address because this is called via ExternalReference. > static int CheckStackGuardState(Address* return_address, Address raw_code, >- Address re_frame); >+ Address re_frame, uintptr_t extra_space); > > private: > // Offsets from frame_pointer() of function parameters and stored registers. >@@ -127,7 +127,8 @@ > > > // Generate a call to CheckStackGuardState. >- void CallCheckStackGuardState(Register scratch); >+ void CallCheckStackGuardState( >+ Register scratch, Operand extra_space_for_variables = Operand::Zero()); > > // The ebp-relative location of a regexp register. > MemOperand register_location(int register_index); >--- qtwebengine-5.15.12_p20240122/src/3rdparty/chromium/v8/src/regexp/ppc/regexp-macro-assembler-ppc.cc.orig 2024-03-23 15:26:25.673652360 +0100 >+++ qtwebengine-5.15.12_p20240122/src/3rdparty/chromium/v8/src/regexp/ppc/regexp-macro-assembler-ppc.cc 2024-03-23 15:43:36.821609443 +0100 >@@ -710,11 +710,13 @@ > __ mov(r3, Operand(stack_limit)); > __ LoadP(r3, MemOperand(r3)); > __ sub(r3, sp, r3, LeaveOE, SetRC); >+ Operand extra_space_for_variables(num_registers_ * kSystemPointerSize); >+ > // Handle it if the stack pointer is already below the stack limit. > __ ble(&stack_limit_hit, cr0); > // Check if there is room for the variable number of registers above > // the stack limit. >- __ Cmpli(r3, Operand(num_registers_ * kSystemPointerSize), r0); >+ __ Cmpli(r3, extra_space_for_variables, r0); > __ bge(&stack_ok); > // Exit with OutOfMemory exception. There is not enough space on the stack > // for our working registers. >@@ -722,7 +724,7 @@ > __ b(&return_r3); > > __ bind(&stack_limit_hit); >- CallCheckStackGuardState(r3); >+ CallCheckStackGuardState(r3, extra_space_for_variables); > __ cmpi(r3, Operand::Zero()); > // If returned value is non-zero, we exit with the returned value as result. > __ bne(&return_r3); >@@ -1097,7 +1099,8 @@ > > // Private methods: > >-void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch) { >+void RegExpMacroAssemblerPPC::CallCheckStackGuardState(Register scratch, >+ Operand extra_space) { > DCHECK(!isolate()->IsGeneratingEmbeddedBuiltins()); > DCHECK(!masm_->options().isolate_independent_code); > >@@ -1128,10 +1131,12 @@ > __ li(r0, Operand::Zero()); > __ StorePU(r0, MemOperand(sp, -stack_space * kSystemPointerSize)); > >+ // Extra space for variables to consider in stack check. >+ __ mov(arg_reg_4, extra_space); > // RegExp code frame pointer. >- __ mr(r5, frame_pointer()); >+ __ mr(arg_reg_3, frame_pointer()); > // Code of self. >- __ mov(r4, Operand(masm_->CodeObject())); >+ __ mov(arg_reg_2, Operand(masm_->CodeObject())); > // r3 will point to the return address, placed by DirectCEntry. > __ addi(r3, sp, Operand(kStackFrameExtraParamSlot * kSystemPointerSize)); > >@@ -1156,7 +1161,6 @@ > __ mov(code_pointer(), Operand(masm_->CodeObject())); > } > >- > // Helper function for reading a value out of a stack frame. > template <typename T> > static T& frame_entry(Address re_frame, int frame_offset) { >@@ -1171,7 +1175,8 @@ > > int RegExpMacroAssemblerPPC::CheckStackGuardState(Address* return_address, > Address raw_code, >- Address re_frame) { >+ Address re_frame, >+ uintptr_t extra_space) { > Code re_code = Code::cast(Object(raw_code)); > return NativeRegExpMacroAssembler::CheckStackGuardState( > frame_entry<Isolate*>(re_frame, kIsolate), >@@ -1181,10 +1186,10 @@ > return_address, re_code, > frame_entry_address<Address>(re_frame, kInputString), > frame_entry_address<const byte*>(re_frame, kInputStart), >- frame_entry_address<const byte*>(re_frame, kInputEnd)); >+ frame_entry_address<const byte*>(re_frame, kInputEnd), >+ extra_space); > } > >- > MemOperand RegExpMacroAssemblerPPC::register_location(int register_index) { > DCHECK(register_index < (1 << 30)); > if (num_registers_ <= register_index) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 931590
:
892498
| 892499