Commit 48d02e69 authored by Ivica Bogosavljevic's avatar Ivica Bogosavljevic Committed by Commit Bot

MIPS64: Port `[atomics] Implement 64-bit Atomics operations`

Port c2088790

Change-Id: Ia57a3a47bbc6f99fdf40ea58d01cbb007b4409e3
Reviewed-on: https://chromium-review.googlesource.com/1245773Reviewed-by: 's avatarSreten Kovacevic <skovacevic@wavecomp.com>
Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
Commit-Queue: Sreten Kovacevic <skovacevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56270}
parent c6930923
......@@ -2439,7 +2439,7 @@ void InstructionSelector::VisitF32x4UConvertI32x4(Node* node) {
#endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
// && !V8_TARGET_ARCH_MIPS64 && !V8_TARGET_ARCH_IA32
#if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM64
#if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS64
void InstructionSelector::VisitWord64AtomicLoad(Node* node) { UNIMPLEMENTED(); }
void InstructionSelector::VisitWord64AtomicStore(Node* node) {
......
......@@ -293,6 +293,11 @@ int InstructionScheduler::GetTargetInstructionFlags(
case kMips64Ulw:
case kMips64Ulwu:
case kMips64Ulwc1:
case kMips64Word64AtomicLoadUint8:
case kMips64Word64AtomicLoadUint16:
case kMips64Word64AtomicLoadUint32:
case kMips64Word64AtomicLoadUint64:
return kIsLoadOperation;
case kMips64ModD:
......@@ -312,6 +317,38 @@ int InstructionScheduler::GetTargetInstructionFlags(
case kMips64Ush:
case kMips64Usw:
case kMips64Uswc1:
case kMips64Word64AtomicStoreWord8:
case kMips64Word64AtomicStoreWord16:
case kMips64Word64AtomicStoreWord32:
case kMips64Word64AtomicStoreWord64:
case kMips64Word64AtomicAddUint8:
case kMips64Word64AtomicAddUint16:
case kMips64Word64AtomicAddUint32:
case kMips64Word64AtomicAddUint64:
case kMips64Word64AtomicSubUint8:
case kMips64Word64AtomicSubUint16:
case kMips64Word64AtomicSubUint32:
case kMips64Word64AtomicSubUint64:
case kMips64Word64AtomicAndUint8:
case kMips64Word64AtomicAndUint16:
case kMips64Word64AtomicAndUint32:
case kMips64Word64AtomicAndUint64:
case kMips64Word64AtomicOrUint8:
case kMips64Word64AtomicOrUint16:
case kMips64Word64AtomicOrUint32:
case kMips64Word64AtomicOrUint64:
case kMips64Word64AtomicXorUint8:
case kMips64Word64AtomicXorUint16:
case kMips64Word64AtomicXorUint32:
case kMips64Word64AtomicXorUint64:
case kMips64Word64AtomicExchangeUint8:
case kMips64Word64AtomicExchangeUint16:
case kMips64Word64AtomicExchangeUint32:
case kMips64Word64AtomicExchangeUint64:
case kMips64Word64AtomicCompareExchangeUint8:
case kMips64Word64AtomicCompareExchangeUint16:
case kMips64Word64AtomicCompareExchangeUint32:
case kMips64Word64AtomicCompareExchangeUint64:
return kHasSideEffect;
#define CASE(Name) case k##Name:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment