Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ce0f498

Browse filesBrowse files
abmusseRafaelGSS
authored andcommitted
deps: V8: cherry-pick fcf8b990c73c
Original commit message: aix: add required changes to build with clang Change-Id: Icc78c58831306aa2f227843b0b4ec2321585fa64 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7107287 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104364} Refs: v8/v8@fcf8b99 PR-URL: #62894 Reviewed-By: René <contact.9a5d6388@renegade334.me.uk> Reviewed-By: Abdirahim Musse <abdirahim.musse@ibm.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> (cherry picked from commit acb1bd7)
1 parent b7fab70 commit ce0f498
Copy full SHA for ce0f498

6 files changed

+33-12Lines changed: 33 additions & 12 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎common.gypi‎

Copy file name to clipboardExpand all lines: common.gypi
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
# Reset this number to 0 on major V8 upgrades.
4040
# Increment by one for each non-official patch applied to deps/v8.
41-
'v8_embedder_string': '-node.17',
41+
'v8_embedder_string': '-node.18',
4242

4343
##### V8 defaults for Node.js #####
4444

Collapse file

‎deps/v8/BUILD.gn‎

Copy file name to clipboardExpand all lines: deps/v8/BUILD.gn
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1627,7 +1627,7 @@ config("toolchain") {
16271627
if (v8_current_cpu == "ppc64") {
16281628
defines += [ "V8_TARGET_ARCH_PPC64" ]
16291629
cflags += [ "-ffp-contract=off" ]
1630-
if (current_os == "aix") {
1630+
if (current_os == "aix" && !is_clang) {
16311631
cflags += [
16321632
# Work around AIX ceil, trunc and round oddities.
16331633
"-mcpu=power5+",
Collapse file

‎deps/v8/src/builtins/ppc/builtins-ppc.cc‎

Copy file name to clipboardExpand all lines: deps/v8/src/builtins/ppc/builtins-ppc.cc
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4201,6 +4201,19 @@ void Builtins::Generate_CEntry(MacroAssembler* masm, int result_size,
42014201

42024202
// If return value is on the stack, pop it to registers.
42034203
if (needs_return_buffer) {
4204+
Label done;
4205+
if (switch_to_central_stack) {
4206+
Label no_stack_change;
4207+
__ CmpU64(kOldSPRegister, Operand(0), r0);
4208+
__ beq(&no_stack_change);
4209+
__ addi(r3, kOldSPRegister,
4210+
Operand((kStackFrameExtraParamSlot + 1) * kSystemPointerSize));
4211+
__ b(&done);
4212+
__ bind(&no_stack_change);
4213+
}
4214+
__ addi(r3, sp,
4215+
Operand((kStackFrameExtraParamSlot + 1) * kSystemPointerSize));
4216+
__ bind(&done);
42044217
__ LoadU64(r4, MemOperand(r3, kSystemPointerSize));
42054218
__ LoadU64(r3, MemOperand(r3));
42064219
}
Collapse file

‎deps/v8/src/compiler/turboshaft/operations.h‎

Copy file name to clipboardExpand all lines: deps/v8/src/compiler/turboshaft/operations.h
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ class InputsRepFactory {
525525
};
526526
};
527527

528-
struct EffectDimensions {
528+
struct __attribute__((packed)) EffectDimensions {
529529
// Produced by loads, consumed by operations that should not move before loads
530530
// because they change memory.
531531
bool load_heap_memory : 1;
@@ -620,7 +620,7 @@ static_assert(sizeof(EffectDimensions) == sizeof(EffectDimensions::Bits));
620620
// they become more restricted in their movement. Note that calls are not the
621621
// most side-effectful operations, as they do not leave the heap in an
622622
// inconsistent state, so they do not need to be marked as raw heap access.
623-
struct OpEffects {
623+
struct __attribute__((packed)) OpEffects {
624624
EffectDimensions produces;
625625
EffectDimensions consumes;
626626

@@ -2904,7 +2904,7 @@ struct ConstantOp : FixedArityOperationT<0, ConstantOp> {
29042904
// When result_rep is RegisterRepresentation::Compressed(), then the load does
29052905
// not decompress the value.
29062906
struct LoadOp : OperationT<LoadOp> {
2907-
struct Kind {
2907+
struct __attribute__((packed)) Kind {
29082908
// The `base` input is a tagged pointer to a HeapObject.
29092909
bool tagged_base : 1;
29102910
// The effective address might be unaligned. This is only set to true if
Collapse file

‎deps/v8/src/execution/simulator.h‎

Copy file name to clipboardExpand all lines: deps/v8/src/execution/simulator.h
+11-7Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,13 +199,17 @@ class GeneratedCode {
199199
return fn(args...);
200200
#else
201201
// AIX ABI requires function descriptors (FD). Artificially create a pseudo
202-
// FD to ensure correct dispatch to generated code. The 'volatile'
203-
// declaration is required to avoid the compiler from not observing the
204-
// alias of the pseudo FD to the function pointer, and hence, optimizing the
205-
// pseudo FD declaration/initialization away.
206-
volatile Address function_desc[] = {reinterpret_cast<Address>(fn_ptr_), 0,
207-
0};
208-
Signature* fn = reinterpret_cast<Signature*>(function_desc);
202+
// FD to ensure correct dispatch to generated code.
203+
void* function_desc[3];
204+
Signature* fn;
205+
asm("std %1, 0(%2)\n\t"
206+
"li 0, 0\n\t"
207+
"std 0, 8(%2)\n\t"
208+
"std 0, 16(%2)\n\t"
209+
"mr %0, %2\n\t"
210+
: "=r"(fn)
211+
: "r"(fn_ptr_), "r"(function_desc)
212+
: "memory", "0");
209213
return fn(args...);
210214
#endif // V8_OS_ZOS
211215
#else
Collapse file

‎deps/v8/src/trap-handler/handler-shared.cc‎

Copy file name to clipboardExpand all lines: deps/v8/src/trap-handler/handler-shared.cc
+4Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ namespace v8 {
2424
namespace internal {
2525
namespace trap_handler {
2626

27+
#if defined(V8_OS_AIX)
28+
__thread bool TrapHandlerGuard::is_active_ = 0;
29+
#else
2730
thread_local bool TrapHandlerGuard::is_active_ = 0;
31+
#endif
2832

2933
size_t gNumCodeObjects = 0;
3034
CodeProtectionInfoListEntry* gCodeObjects = nullptr;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.