11cb0ef41Sopenharmony_ci// Copyright 2014 the V8 project authors. All rights reserved. 21cb0ef41Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be 31cb0ef41Sopenharmony_ci// found in the LICENSE file. 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ci#ifndef V8_COMPILER_BACKEND_MIPS64_INSTRUCTION_CODES_MIPS64_H_ 61cb0ef41Sopenharmony_ci#define V8_COMPILER_BACKEND_MIPS64_INSTRUCTION_CODES_MIPS64_H_ 71cb0ef41Sopenharmony_ci 81cb0ef41Sopenharmony_cinamespace v8 { 91cb0ef41Sopenharmony_cinamespace internal { 101cb0ef41Sopenharmony_cinamespace compiler { 111cb0ef41Sopenharmony_ci 121cb0ef41Sopenharmony_ci// MIPS64-specific opcodes that specify which assembly sequence to emit. 131cb0ef41Sopenharmony_ci// Most opcodes specify a single instruction. 141cb0ef41Sopenharmony_ci 151cb0ef41Sopenharmony_ci#define TARGET_ARCH_OPCODE_LIST(V) \ 161cb0ef41Sopenharmony_ci V(Mips64Add) \ 171cb0ef41Sopenharmony_ci V(Mips64Dadd) \ 181cb0ef41Sopenharmony_ci V(Mips64DaddOvf) \ 191cb0ef41Sopenharmony_ci V(Mips64Sub) \ 201cb0ef41Sopenharmony_ci V(Mips64Dsub) \ 211cb0ef41Sopenharmony_ci V(Mips64DsubOvf) \ 221cb0ef41Sopenharmony_ci V(Mips64Mul) \ 231cb0ef41Sopenharmony_ci V(Mips64MulOvf) \ 241cb0ef41Sopenharmony_ci V(Mips64MulHigh) \ 251cb0ef41Sopenharmony_ci V(Mips64DMulHigh) \ 261cb0ef41Sopenharmony_ci V(Mips64MulHighU) \ 271cb0ef41Sopenharmony_ci V(Mips64Dmul) \ 281cb0ef41Sopenharmony_ci V(Mips64Div) \ 291cb0ef41Sopenharmony_ci V(Mips64Ddiv) \ 301cb0ef41Sopenharmony_ci V(Mips64DivU) \ 311cb0ef41Sopenharmony_ci V(Mips64DdivU) \ 321cb0ef41Sopenharmony_ci V(Mips64Mod) \ 331cb0ef41Sopenharmony_ci V(Mips64Dmod) \ 341cb0ef41Sopenharmony_ci V(Mips64ModU) \ 351cb0ef41Sopenharmony_ci V(Mips64DmodU) \ 361cb0ef41Sopenharmony_ci V(Mips64And) \ 371cb0ef41Sopenharmony_ci V(Mips64And32) \ 381cb0ef41Sopenharmony_ci V(Mips64Or) \ 391cb0ef41Sopenharmony_ci V(Mips64Or32) \ 401cb0ef41Sopenharmony_ci V(Mips64Nor) \ 411cb0ef41Sopenharmony_ci V(Mips64Nor32) \ 421cb0ef41Sopenharmony_ci V(Mips64Xor) \ 431cb0ef41Sopenharmony_ci V(Mips64Xor32) \ 441cb0ef41Sopenharmony_ci V(Mips64Clz) \ 451cb0ef41Sopenharmony_ci V(Mips64Lsa) \ 461cb0ef41Sopenharmony_ci V(Mips64Dlsa) \ 471cb0ef41Sopenharmony_ci V(Mips64Shl) \ 481cb0ef41Sopenharmony_ci V(Mips64Shr) \ 491cb0ef41Sopenharmony_ci V(Mips64Sar) \ 501cb0ef41Sopenharmony_ci V(Mips64Ext) \ 511cb0ef41Sopenharmony_ci V(Mips64Ins) \ 521cb0ef41Sopenharmony_ci V(Mips64Dext) \ 531cb0ef41Sopenharmony_ci V(Mips64Dins) \ 541cb0ef41Sopenharmony_ci V(Mips64Dclz) \ 551cb0ef41Sopenharmony_ci V(Mips64Ctz) \ 561cb0ef41Sopenharmony_ci V(Mips64Dctz) \ 571cb0ef41Sopenharmony_ci V(Mips64Popcnt) \ 581cb0ef41Sopenharmony_ci V(Mips64Dpopcnt) \ 591cb0ef41Sopenharmony_ci V(Mips64Dshl) \ 601cb0ef41Sopenharmony_ci V(Mips64Dshr) \ 611cb0ef41Sopenharmony_ci V(Mips64Dsar) \ 621cb0ef41Sopenharmony_ci V(Mips64Ror) \ 631cb0ef41Sopenharmony_ci V(Mips64Dror) \ 641cb0ef41Sopenharmony_ci V(Mips64Mov) \ 651cb0ef41Sopenharmony_ci V(Mips64Tst) \ 661cb0ef41Sopenharmony_ci V(Mips64Cmp) \ 671cb0ef41Sopenharmony_ci V(Mips64CmpS) \ 681cb0ef41Sopenharmony_ci V(Mips64AddS) \ 691cb0ef41Sopenharmony_ci V(Mips64SubS) \ 701cb0ef41Sopenharmony_ci V(Mips64MulS) \ 711cb0ef41Sopenharmony_ci V(Mips64DivS) \ 721cb0ef41Sopenharmony_ci V(Mips64AbsS) \ 731cb0ef41Sopenharmony_ci V(Mips64NegS) \ 741cb0ef41Sopenharmony_ci V(Mips64SqrtS) \ 751cb0ef41Sopenharmony_ci V(Mips64MaxS) \ 761cb0ef41Sopenharmony_ci V(Mips64MinS) \ 771cb0ef41Sopenharmony_ci V(Mips64CmpD) \ 781cb0ef41Sopenharmony_ci V(Mips64AddD) \ 791cb0ef41Sopenharmony_ci V(Mips64SubD) \ 801cb0ef41Sopenharmony_ci V(Mips64MulD) \ 811cb0ef41Sopenharmony_ci V(Mips64DivD) \ 821cb0ef41Sopenharmony_ci V(Mips64ModD) \ 831cb0ef41Sopenharmony_ci V(Mips64AbsD) \ 841cb0ef41Sopenharmony_ci V(Mips64NegD) \ 851cb0ef41Sopenharmony_ci V(Mips64SqrtD) \ 861cb0ef41Sopenharmony_ci V(Mips64MaxD) \ 871cb0ef41Sopenharmony_ci V(Mips64MinD) \ 881cb0ef41Sopenharmony_ci V(Mips64Float64RoundDown) \ 891cb0ef41Sopenharmony_ci V(Mips64Float64RoundTruncate) \ 901cb0ef41Sopenharmony_ci V(Mips64Float64RoundUp) \ 911cb0ef41Sopenharmony_ci V(Mips64Float64RoundTiesEven) \ 921cb0ef41Sopenharmony_ci V(Mips64Float32RoundDown) \ 931cb0ef41Sopenharmony_ci V(Mips64Float32RoundTruncate) \ 941cb0ef41Sopenharmony_ci V(Mips64Float32RoundUp) \ 951cb0ef41Sopenharmony_ci V(Mips64Float32RoundTiesEven) \ 961cb0ef41Sopenharmony_ci V(Mips64CvtSD) \ 971cb0ef41Sopenharmony_ci V(Mips64CvtDS) \ 981cb0ef41Sopenharmony_ci V(Mips64TruncWD) \ 991cb0ef41Sopenharmony_ci V(Mips64RoundWD) \ 1001cb0ef41Sopenharmony_ci V(Mips64FloorWD) \ 1011cb0ef41Sopenharmony_ci V(Mips64CeilWD) \ 1021cb0ef41Sopenharmony_ci V(Mips64TruncWS) \ 1031cb0ef41Sopenharmony_ci V(Mips64RoundWS) \ 1041cb0ef41Sopenharmony_ci V(Mips64FloorWS) \ 1051cb0ef41Sopenharmony_ci V(Mips64CeilWS) \ 1061cb0ef41Sopenharmony_ci V(Mips64TruncLS) \ 1071cb0ef41Sopenharmony_ci V(Mips64TruncLD) \ 1081cb0ef41Sopenharmony_ci V(Mips64TruncUwD) \ 1091cb0ef41Sopenharmony_ci V(Mips64TruncUwS) \ 1101cb0ef41Sopenharmony_ci V(Mips64TruncUlS) \ 1111cb0ef41Sopenharmony_ci V(Mips64TruncUlD) \ 1121cb0ef41Sopenharmony_ci V(Mips64CvtDW) \ 1131cb0ef41Sopenharmony_ci V(Mips64CvtSL) \ 1141cb0ef41Sopenharmony_ci V(Mips64CvtSW) \ 1151cb0ef41Sopenharmony_ci V(Mips64CvtSUw) \ 1161cb0ef41Sopenharmony_ci V(Mips64CvtSUl) \ 1171cb0ef41Sopenharmony_ci V(Mips64CvtDL) \ 1181cb0ef41Sopenharmony_ci V(Mips64CvtDUw) \ 1191cb0ef41Sopenharmony_ci V(Mips64CvtDUl) \ 1201cb0ef41Sopenharmony_ci V(Mips64Lb) \ 1211cb0ef41Sopenharmony_ci V(Mips64Lbu) \ 1221cb0ef41Sopenharmony_ci V(Mips64Sb) \ 1231cb0ef41Sopenharmony_ci V(Mips64Lh) \ 1241cb0ef41Sopenharmony_ci V(Mips64Ulh) \ 1251cb0ef41Sopenharmony_ci V(Mips64Lhu) \ 1261cb0ef41Sopenharmony_ci V(Mips64Ulhu) \ 1271cb0ef41Sopenharmony_ci V(Mips64Sh) \ 1281cb0ef41Sopenharmony_ci V(Mips64Ush) \ 1291cb0ef41Sopenharmony_ci V(Mips64Ld) \ 1301cb0ef41Sopenharmony_ci V(Mips64Uld) \ 1311cb0ef41Sopenharmony_ci V(Mips64Lw) \ 1321cb0ef41Sopenharmony_ci V(Mips64Ulw) \ 1331cb0ef41Sopenharmony_ci V(Mips64Lwu) \ 1341cb0ef41Sopenharmony_ci V(Mips64Ulwu) \ 1351cb0ef41Sopenharmony_ci V(Mips64Sw) \ 1361cb0ef41Sopenharmony_ci V(Mips64Usw) \ 1371cb0ef41Sopenharmony_ci V(Mips64Sd) \ 1381cb0ef41Sopenharmony_ci V(Mips64Usd) \ 1391cb0ef41Sopenharmony_ci V(Mips64Lwc1) \ 1401cb0ef41Sopenharmony_ci V(Mips64Ulwc1) \ 1411cb0ef41Sopenharmony_ci V(Mips64Swc1) \ 1421cb0ef41Sopenharmony_ci V(Mips64Uswc1) \ 1431cb0ef41Sopenharmony_ci V(Mips64Ldc1) \ 1441cb0ef41Sopenharmony_ci V(Mips64Uldc1) \ 1451cb0ef41Sopenharmony_ci V(Mips64Sdc1) \ 1461cb0ef41Sopenharmony_ci V(Mips64Usdc1) \ 1471cb0ef41Sopenharmony_ci V(Mips64BitcastDL) \ 1481cb0ef41Sopenharmony_ci V(Mips64BitcastLD) \ 1491cb0ef41Sopenharmony_ci V(Mips64Float64ExtractLowWord32) \ 1501cb0ef41Sopenharmony_ci V(Mips64Float64ExtractHighWord32) \ 1511cb0ef41Sopenharmony_ci V(Mips64Float64InsertLowWord32) \ 1521cb0ef41Sopenharmony_ci V(Mips64Float64InsertHighWord32) \ 1531cb0ef41Sopenharmony_ci V(Mips64Float32Max) \ 1541cb0ef41Sopenharmony_ci V(Mips64Float64Max) \ 1551cb0ef41Sopenharmony_ci V(Mips64Float32Min) \ 1561cb0ef41Sopenharmony_ci V(Mips64Float64Min) \ 1571cb0ef41Sopenharmony_ci V(Mips64Float64SilenceNaN) \ 1581cb0ef41Sopenharmony_ci V(Mips64Push) \ 1591cb0ef41Sopenharmony_ci V(Mips64Peek) \ 1601cb0ef41Sopenharmony_ci V(Mips64StoreToStackSlot) \ 1611cb0ef41Sopenharmony_ci V(Mips64ByteSwap64) \ 1621cb0ef41Sopenharmony_ci V(Mips64ByteSwap32) \ 1631cb0ef41Sopenharmony_ci V(Mips64StackClaim) \ 1641cb0ef41Sopenharmony_ci V(Mips64Seb) \ 1651cb0ef41Sopenharmony_ci V(Mips64Seh) \ 1661cb0ef41Sopenharmony_ci V(Mips64Sync) \ 1671cb0ef41Sopenharmony_ci V(Mips64AssertEqual) \ 1681cb0ef41Sopenharmony_ci V(Mips64S128Const) \ 1691cb0ef41Sopenharmony_ci V(Mips64S128Zero) \ 1701cb0ef41Sopenharmony_ci V(Mips64S128AllOnes) \ 1711cb0ef41Sopenharmony_ci V(Mips64I32x4Splat) \ 1721cb0ef41Sopenharmony_ci V(Mips64I32x4ExtractLane) \ 1731cb0ef41Sopenharmony_ci V(Mips64I32x4ReplaceLane) \ 1741cb0ef41Sopenharmony_ci V(Mips64I32x4Add) \ 1751cb0ef41Sopenharmony_ci V(Mips64I32x4Sub) \ 1761cb0ef41Sopenharmony_ci V(Mips64F64x2Abs) \ 1771cb0ef41Sopenharmony_ci V(Mips64F64x2Neg) \ 1781cb0ef41Sopenharmony_ci V(Mips64F32x4Splat) \ 1791cb0ef41Sopenharmony_ci V(Mips64F32x4ExtractLane) \ 1801cb0ef41Sopenharmony_ci V(Mips64F32x4ReplaceLane) \ 1811cb0ef41Sopenharmony_ci V(Mips64F32x4SConvertI32x4) \ 1821cb0ef41Sopenharmony_ci V(Mips64F32x4UConvertI32x4) \ 1831cb0ef41Sopenharmony_ci V(Mips64I32x4Mul) \ 1841cb0ef41Sopenharmony_ci V(Mips64I32x4MaxS) \ 1851cb0ef41Sopenharmony_ci V(Mips64I32x4MinS) \ 1861cb0ef41Sopenharmony_ci V(Mips64I32x4Eq) \ 1871cb0ef41Sopenharmony_ci V(Mips64I32x4Ne) \ 1881cb0ef41Sopenharmony_ci V(Mips64I32x4Shl) \ 1891cb0ef41Sopenharmony_ci V(Mips64I32x4ShrS) \ 1901cb0ef41Sopenharmony_ci V(Mips64I32x4ShrU) \ 1911cb0ef41Sopenharmony_ci V(Mips64I32x4MaxU) \ 1921cb0ef41Sopenharmony_ci V(Mips64I32x4MinU) \ 1931cb0ef41Sopenharmony_ci V(Mips64F64x2Sqrt) \ 1941cb0ef41Sopenharmony_ci V(Mips64F64x2Add) \ 1951cb0ef41Sopenharmony_ci V(Mips64F64x2Sub) \ 1961cb0ef41Sopenharmony_ci V(Mips64F64x2Mul) \ 1971cb0ef41Sopenharmony_ci V(Mips64F64x2Div) \ 1981cb0ef41Sopenharmony_ci V(Mips64F64x2Min) \ 1991cb0ef41Sopenharmony_ci V(Mips64F64x2Max) \ 2001cb0ef41Sopenharmony_ci V(Mips64F64x2Eq) \ 2011cb0ef41Sopenharmony_ci V(Mips64F64x2Ne) \ 2021cb0ef41Sopenharmony_ci V(Mips64F64x2Lt) \ 2031cb0ef41Sopenharmony_ci V(Mips64F64x2Le) \ 2041cb0ef41Sopenharmony_ci V(Mips64F64x2Splat) \ 2051cb0ef41Sopenharmony_ci V(Mips64F64x2ExtractLane) \ 2061cb0ef41Sopenharmony_ci V(Mips64F64x2ReplaceLane) \ 2071cb0ef41Sopenharmony_ci V(Mips64F64x2Pmin) \ 2081cb0ef41Sopenharmony_ci V(Mips64F64x2Pmax) \ 2091cb0ef41Sopenharmony_ci V(Mips64F64x2Ceil) \ 2101cb0ef41Sopenharmony_ci V(Mips64F64x2Floor) \ 2111cb0ef41Sopenharmony_ci V(Mips64F64x2Trunc) \ 2121cb0ef41Sopenharmony_ci V(Mips64F64x2NearestInt) \ 2131cb0ef41Sopenharmony_ci V(Mips64F64x2ConvertLowI32x4S) \ 2141cb0ef41Sopenharmony_ci V(Mips64F64x2ConvertLowI32x4U) \ 2151cb0ef41Sopenharmony_ci V(Mips64F64x2PromoteLowF32x4) \ 2161cb0ef41Sopenharmony_ci V(Mips64I64x2Splat) \ 2171cb0ef41Sopenharmony_ci V(Mips64I64x2ExtractLane) \ 2181cb0ef41Sopenharmony_ci V(Mips64I64x2ReplaceLane) \ 2191cb0ef41Sopenharmony_ci V(Mips64I64x2Add) \ 2201cb0ef41Sopenharmony_ci V(Mips64I64x2Sub) \ 2211cb0ef41Sopenharmony_ci V(Mips64I64x2Mul) \ 2221cb0ef41Sopenharmony_ci V(Mips64I64x2Neg) \ 2231cb0ef41Sopenharmony_ci V(Mips64I64x2Shl) \ 2241cb0ef41Sopenharmony_ci V(Mips64I64x2ShrS) \ 2251cb0ef41Sopenharmony_ci V(Mips64I64x2ShrU) \ 2261cb0ef41Sopenharmony_ci V(Mips64I64x2BitMask) \ 2271cb0ef41Sopenharmony_ci V(Mips64I64x2Eq) \ 2281cb0ef41Sopenharmony_ci V(Mips64I64x2Ne) \ 2291cb0ef41Sopenharmony_ci V(Mips64I64x2GtS) \ 2301cb0ef41Sopenharmony_ci V(Mips64I64x2GeS) \ 2311cb0ef41Sopenharmony_ci V(Mips64I64x2Abs) \ 2321cb0ef41Sopenharmony_ci V(Mips64I64x2SConvertI32x4Low) \ 2331cb0ef41Sopenharmony_ci V(Mips64I64x2SConvertI32x4High) \ 2341cb0ef41Sopenharmony_ci V(Mips64I64x2UConvertI32x4Low) \ 2351cb0ef41Sopenharmony_ci V(Mips64I64x2UConvertI32x4High) \ 2361cb0ef41Sopenharmony_ci V(Mips64ExtMulLow) \ 2371cb0ef41Sopenharmony_ci V(Mips64ExtMulHigh) \ 2381cb0ef41Sopenharmony_ci V(Mips64ExtAddPairwise) \ 2391cb0ef41Sopenharmony_ci V(Mips64F32x4Abs) \ 2401cb0ef41Sopenharmony_ci V(Mips64F32x4Neg) \ 2411cb0ef41Sopenharmony_ci V(Mips64F32x4Sqrt) \ 2421cb0ef41Sopenharmony_ci V(Mips64F32x4RecipApprox) \ 2431cb0ef41Sopenharmony_ci V(Mips64F32x4RecipSqrtApprox) \ 2441cb0ef41Sopenharmony_ci V(Mips64F32x4Add) \ 2451cb0ef41Sopenharmony_ci V(Mips64F32x4Sub) \ 2461cb0ef41Sopenharmony_ci V(Mips64F32x4Mul) \ 2471cb0ef41Sopenharmony_ci V(Mips64F32x4Div) \ 2481cb0ef41Sopenharmony_ci V(Mips64F32x4Max) \ 2491cb0ef41Sopenharmony_ci V(Mips64F32x4Min) \ 2501cb0ef41Sopenharmony_ci V(Mips64F32x4Eq) \ 2511cb0ef41Sopenharmony_ci V(Mips64F32x4Ne) \ 2521cb0ef41Sopenharmony_ci V(Mips64F32x4Lt) \ 2531cb0ef41Sopenharmony_ci V(Mips64F32x4Le) \ 2541cb0ef41Sopenharmony_ci V(Mips64F32x4Pmin) \ 2551cb0ef41Sopenharmony_ci V(Mips64F32x4Pmax) \ 2561cb0ef41Sopenharmony_ci V(Mips64F32x4Ceil) \ 2571cb0ef41Sopenharmony_ci V(Mips64F32x4Floor) \ 2581cb0ef41Sopenharmony_ci V(Mips64F32x4Trunc) \ 2591cb0ef41Sopenharmony_ci V(Mips64F32x4NearestInt) \ 2601cb0ef41Sopenharmony_ci V(Mips64F32x4DemoteF64x2Zero) \ 2611cb0ef41Sopenharmony_ci V(Mips64I32x4SConvertF32x4) \ 2621cb0ef41Sopenharmony_ci V(Mips64I32x4UConvertF32x4) \ 2631cb0ef41Sopenharmony_ci V(Mips64I32x4Neg) \ 2641cb0ef41Sopenharmony_ci V(Mips64I32x4GtS) \ 2651cb0ef41Sopenharmony_ci V(Mips64I32x4GeS) \ 2661cb0ef41Sopenharmony_ci V(Mips64I32x4GtU) \ 2671cb0ef41Sopenharmony_ci V(Mips64I32x4GeU) \ 2681cb0ef41Sopenharmony_ci V(Mips64I32x4Abs) \ 2691cb0ef41Sopenharmony_ci V(Mips64I32x4BitMask) \ 2701cb0ef41Sopenharmony_ci V(Mips64I32x4DotI16x8S) \ 2711cb0ef41Sopenharmony_ci V(Mips64I32x4TruncSatF64x2SZero) \ 2721cb0ef41Sopenharmony_ci V(Mips64I32x4TruncSatF64x2UZero) \ 2731cb0ef41Sopenharmony_ci V(Mips64I16x8Splat) \ 2741cb0ef41Sopenharmony_ci V(Mips64I16x8ExtractLaneU) \ 2751cb0ef41Sopenharmony_ci V(Mips64I16x8ExtractLaneS) \ 2761cb0ef41Sopenharmony_ci V(Mips64I16x8ReplaceLane) \ 2771cb0ef41Sopenharmony_ci V(Mips64I16x8Neg) \ 2781cb0ef41Sopenharmony_ci V(Mips64I16x8Shl) \ 2791cb0ef41Sopenharmony_ci V(Mips64I16x8ShrS) \ 2801cb0ef41Sopenharmony_ci V(Mips64I16x8ShrU) \ 2811cb0ef41Sopenharmony_ci V(Mips64I16x8Add) \ 2821cb0ef41Sopenharmony_ci V(Mips64I16x8AddSatS) \ 2831cb0ef41Sopenharmony_ci V(Mips64I16x8Sub) \ 2841cb0ef41Sopenharmony_ci V(Mips64I16x8SubSatS) \ 2851cb0ef41Sopenharmony_ci V(Mips64I16x8Mul) \ 2861cb0ef41Sopenharmony_ci V(Mips64I16x8MaxS) \ 2871cb0ef41Sopenharmony_ci V(Mips64I16x8MinS) \ 2881cb0ef41Sopenharmony_ci V(Mips64I16x8Eq) \ 2891cb0ef41Sopenharmony_ci V(Mips64I16x8Ne) \ 2901cb0ef41Sopenharmony_ci V(Mips64I16x8GtS) \ 2911cb0ef41Sopenharmony_ci V(Mips64I16x8GeS) \ 2921cb0ef41Sopenharmony_ci V(Mips64I16x8AddSatU) \ 2931cb0ef41Sopenharmony_ci V(Mips64I16x8SubSatU) \ 2941cb0ef41Sopenharmony_ci V(Mips64I16x8MaxU) \ 2951cb0ef41Sopenharmony_ci V(Mips64I16x8MinU) \ 2961cb0ef41Sopenharmony_ci V(Mips64I16x8GtU) \ 2971cb0ef41Sopenharmony_ci V(Mips64I16x8GeU) \ 2981cb0ef41Sopenharmony_ci V(Mips64I16x8RoundingAverageU) \ 2991cb0ef41Sopenharmony_ci V(Mips64I16x8Abs) \ 3001cb0ef41Sopenharmony_ci V(Mips64I16x8BitMask) \ 3011cb0ef41Sopenharmony_ci V(Mips64I16x8Q15MulRSatS) \ 3021cb0ef41Sopenharmony_ci V(Mips64I8x16Splat) \ 3031cb0ef41Sopenharmony_ci V(Mips64I8x16ExtractLaneU) \ 3041cb0ef41Sopenharmony_ci V(Mips64I8x16ExtractLaneS) \ 3051cb0ef41Sopenharmony_ci V(Mips64I8x16ReplaceLane) \ 3061cb0ef41Sopenharmony_ci V(Mips64I8x16Neg) \ 3071cb0ef41Sopenharmony_ci V(Mips64I8x16Shl) \ 3081cb0ef41Sopenharmony_ci V(Mips64I8x16ShrS) \ 3091cb0ef41Sopenharmony_ci V(Mips64I8x16Add) \ 3101cb0ef41Sopenharmony_ci V(Mips64I8x16AddSatS) \ 3111cb0ef41Sopenharmony_ci V(Mips64I8x16Sub) \ 3121cb0ef41Sopenharmony_ci V(Mips64I8x16SubSatS) \ 3131cb0ef41Sopenharmony_ci V(Mips64I8x16MaxS) \ 3141cb0ef41Sopenharmony_ci V(Mips64I8x16MinS) \ 3151cb0ef41Sopenharmony_ci V(Mips64I8x16Eq) \ 3161cb0ef41Sopenharmony_ci V(Mips64I8x16Ne) \ 3171cb0ef41Sopenharmony_ci V(Mips64I8x16GtS) \ 3181cb0ef41Sopenharmony_ci V(Mips64I8x16GeS) \ 3191cb0ef41Sopenharmony_ci V(Mips64I8x16ShrU) \ 3201cb0ef41Sopenharmony_ci V(Mips64I8x16AddSatU) \ 3211cb0ef41Sopenharmony_ci V(Mips64I8x16SubSatU) \ 3221cb0ef41Sopenharmony_ci V(Mips64I8x16MaxU) \ 3231cb0ef41Sopenharmony_ci V(Mips64I8x16MinU) \ 3241cb0ef41Sopenharmony_ci V(Mips64I8x16GtU) \ 3251cb0ef41Sopenharmony_ci V(Mips64I8x16GeU) \ 3261cb0ef41Sopenharmony_ci V(Mips64I8x16RoundingAverageU) \ 3271cb0ef41Sopenharmony_ci V(Mips64I8x16Abs) \ 3281cb0ef41Sopenharmony_ci V(Mips64I8x16Popcnt) \ 3291cb0ef41Sopenharmony_ci V(Mips64I8x16BitMask) \ 3301cb0ef41Sopenharmony_ci V(Mips64S128And) \ 3311cb0ef41Sopenharmony_ci V(Mips64S128Or) \ 3321cb0ef41Sopenharmony_ci V(Mips64S128Xor) \ 3331cb0ef41Sopenharmony_ci V(Mips64S128Not) \ 3341cb0ef41Sopenharmony_ci V(Mips64S128Select) \ 3351cb0ef41Sopenharmony_ci V(Mips64S128AndNot) \ 3361cb0ef41Sopenharmony_ci V(Mips64I64x2AllTrue) \ 3371cb0ef41Sopenharmony_ci V(Mips64I32x4AllTrue) \ 3381cb0ef41Sopenharmony_ci V(Mips64I16x8AllTrue) \ 3391cb0ef41Sopenharmony_ci V(Mips64I8x16AllTrue) \ 3401cb0ef41Sopenharmony_ci V(Mips64V128AnyTrue) \ 3411cb0ef41Sopenharmony_ci V(Mips64S32x4InterleaveRight) \ 3421cb0ef41Sopenharmony_ci V(Mips64S32x4InterleaveLeft) \ 3431cb0ef41Sopenharmony_ci V(Mips64S32x4PackEven) \ 3441cb0ef41Sopenharmony_ci V(Mips64S32x4PackOdd) \ 3451cb0ef41Sopenharmony_ci V(Mips64S32x4InterleaveEven) \ 3461cb0ef41Sopenharmony_ci V(Mips64S32x4InterleaveOdd) \ 3471cb0ef41Sopenharmony_ci V(Mips64S32x4Shuffle) \ 3481cb0ef41Sopenharmony_ci V(Mips64S16x8InterleaveRight) \ 3491cb0ef41Sopenharmony_ci V(Mips64S16x8InterleaveLeft) \ 3501cb0ef41Sopenharmony_ci V(Mips64S16x8PackEven) \ 3511cb0ef41Sopenharmony_ci V(Mips64S16x8PackOdd) \ 3521cb0ef41Sopenharmony_ci V(Mips64S16x8InterleaveEven) \ 3531cb0ef41Sopenharmony_ci V(Mips64S16x8InterleaveOdd) \ 3541cb0ef41Sopenharmony_ci V(Mips64S16x4Reverse) \ 3551cb0ef41Sopenharmony_ci V(Mips64S16x2Reverse) \ 3561cb0ef41Sopenharmony_ci V(Mips64S8x16InterleaveRight) \ 3571cb0ef41Sopenharmony_ci V(Mips64S8x16InterleaveLeft) \ 3581cb0ef41Sopenharmony_ci V(Mips64S8x16PackEven) \ 3591cb0ef41Sopenharmony_ci V(Mips64S8x16PackOdd) \ 3601cb0ef41Sopenharmony_ci V(Mips64S8x16InterleaveEven) \ 3611cb0ef41Sopenharmony_ci V(Mips64S8x16InterleaveOdd) \ 3621cb0ef41Sopenharmony_ci V(Mips64I8x16Shuffle) \ 3631cb0ef41Sopenharmony_ci V(Mips64I8x16Swizzle) \ 3641cb0ef41Sopenharmony_ci V(Mips64S8x16Concat) \ 3651cb0ef41Sopenharmony_ci V(Mips64S8x8Reverse) \ 3661cb0ef41Sopenharmony_ci V(Mips64S8x4Reverse) \ 3671cb0ef41Sopenharmony_ci V(Mips64S8x2Reverse) \ 3681cb0ef41Sopenharmony_ci V(Mips64S128LoadSplat) \ 3691cb0ef41Sopenharmony_ci V(Mips64S128Load8x8S) \ 3701cb0ef41Sopenharmony_ci V(Mips64S128Load8x8U) \ 3711cb0ef41Sopenharmony_ci V(Mips64S128Load16x4S) \ 3721cb0ef41Sopenharmony_ci V(Mips64S128Load16x4U) \ 3731cb0ef41Sopenharmony_ci V(Mips64S128Load32x2S) \ 3741cb0ef41Sopenharmony_ci V(Mips64S128Load32x2U) \ 3751cb0ef41Sopenharmony_ci V(Mips64S128Load32Zero) \ 3761cb0ef41Sopenharmony_ci V(Mips64S128Load64Zero) \ 3771cb0ef41Sopenharmony_ci V(Mips64S128LoadLane) \ 3781cb0ef41Sopenharmony_ci V(Mips64S128StoreLane) \ 3791cb0ef41Sopenharmony_ci V(Mips64MsaLd) \ 3801cb0ef41Sopenharmony_ci V(Mips64MsaSt) \ 3811cb0ef41Sopenharmony_ci V(Mips64I32x4SConvertI16x8Low) \ 3821cb0ef41Sopenharmony_ci V(Mips64I32x4SConvertI16x8High) \ 3831cb0ef41Sopenharmony_ci V(Mips64I32x4UConvertI16x8Low) \ 3841cb0ef41Sopenharmony_ci V(Mips64I32x4UConvertI16x8High) \ 3851cb0ef41Sopenharmony_ci V(Mips64I16x8SConvertI8x16Low) \ 3861cb0ef41Sopenharmony_ci V(Mips64I16x8SConvertI8x16High) \ 3871cb0ef41Sopenharmony_ci V(Mips64I16x8SConvertI32x4) \ 3881cb0ef41Sopenharmony_ci V(Mips64I16x8UConvertI32x4) \ 3891cb0ef41Sopenharmony_ci V(Mips64I16x8UConvertI8x16Low) \ 3901cb0ef41Sopenharmony_ci V(Mips64I16x8UConvertI8x16High) \ 3911cb0ef41Sopenharmony_ci V(Mips64I8x16SConvertI16x8) \ 3921cb0ef41Sopenharmony_ci V(Mips64I8x16UConvertI16x8) \ 3931cb0ef41Sopenharmony_ci V(Mips64StoreCompressTagged) \ 3941cb0ef41Sopenharmony_ci V(Mips64Word64AtomicLoadUint64) \ 3951cb0ef41Sopenharmony_ci V(Mips64Word64AtomicStoreWord64) \ 3961cb0ef41Sopenharmony_ci V(Mips64Word64AtomicAddUint64) \ 3971cb0ef41Sopenharmony_ci V(Mips64Word64AtomicSubUint64) \ 3981cb0ef41Sopenharmony_ci V(Mips64Word64AtomicAndUint64) \ 3991cb0ef41Sopenharmony_ci V(Mips64Word64AtomicOrUint64) \ 4001cb0ef41Sopenharmony_ci V(Mips64Word64AtomicXorUint64) \ 4011cb0ef41Sopenharmony_ci V(Mips64Word64AtomicExchangeUint64) \ 4021cb0ef41Sopenharmony_ci V(Mips64Word64AtomicCompareExchangeUint64) 4031cb0ef41Sopenharmony_ci 4041cb0ef41Sopenharmony_ci// Addressing modes represent the "shape" of inputs to an instruction. 4051cb0ef41Sopenharmony_ci// Many instructions support multiple addressing modes. Addressing modes 4061cb0ef41Sopenharmony_ci// are encoded into the InstructionCode of the instruction and tell the 4071cb0ef41Sopenharmony_ci// code generator after register allocation which assembler method to call. 4081cb0ef41Sopenharmony_ci// 4091cb0ef41Sopenharmony_ci// We use the following local notation for addressing modes: 4101cb0ef41Sopenharmony_ci// 4111cb0ef41Sopenharmony_ci// R = register 4121cb0ef41Sopenharmony_ci// O = register or stack slot 4131cb0ef41Sopenharmony_ci// D = double register 4141cb0ef41Sopenharmony_ci// I = immediate (handle, external, int32) 4151cb0ef41Sopenharmony_ci// MRI = [register + immediate] 4161cb0ef41Sopenharmony_ci// MRR = [register + register] 4171cb0ef41Sopenharmony_ci// TODO(plind): Add the new r6 address modes. 4181cb0ef41Sopenharmony_ci#define TARGET_ADDRESSING_MODE_LIST(V) \ 4191cb0ef41Sopenharmony_ci V(MRI) /* [%r0 + K] */ \ 4201cb0ef41Sopenharmony_ci V(MRR) /* [%r0 + %r1] */ 4211cb0ef41Sopenharmony_ci 4221cb0ef41Sopenharmony_ci} // namespace compiler 4231cb0ef41Sopenharmony_ci} // namespace internal 4241cb0ef41Sopenharmony_ci} // namespace v8 4251cb0ef41Sopenharmony_ci 4261cb0ef41Sopenharmony_ci#endif // V8_COMPILER_BACKEND_MIPS64_INSTRUCTION_CODES_MIPS64_H_ 427