⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 286154 in webkit


Ignore:
Timestamp:
Nov 24, 2021, 3:50:00 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

[RISCV64] Fix floating-point register listings in FPRInfo.h
https://bugs.webkit.org/show_bug.cgi?id=233243

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-24
Reviewed by Yusuke Suzuki.

As with general-purpose registers, fpRegT0 to fpRegT7 assignments have
to match the argument registers. Index-to-FPRReg mapping functions are
updated accordingly.

  • jit/FPRInfo.h:

(JSC::FPRInfo::toRegister):
(JSC::FPRInfo::toIndex):

Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r286149 r286154  
     12021-11-24  Zan Dobersek  <zdobersek@igalia.com>
     2
     3        [RISCV64] Fix floating-point register listings in FPRInfo.h
     4        https://bugs.webkit.org/show_bug.cgi?id=233243
     5
     6        Reviewed by Yusuke Suzuki.
     7
     8        As with general-purpose registers, fpRegT0 to fpRegT7 assignments have
     9        to match the argument registers. Index-to-FPRReg mapping functions are
     10        updated accordingly.
     11
     12        * jit/FPRInfo.h:
     13        (JSC::FPRInfo::toRegister):
     14        (JSC::FPRInfo::toIndex):
     15
    1162021-11-24  Aditi Singh  <asingh@igalia.com>
    217
  • trunk/Source/JavaScriptCore/jit/FPRInfo.h

    r281757 r286154  
    335335public:
    336336    typedef FPRReg RegisterType;
    337     static constexpr unsigned numberOfRegisters = 20;
     337    static constexpr unsigned numberOfRegisters = 18;
    338338    static constexpr unsigned numberOfArgumentRegisters = 8;
    339339
    340     static constexpr FPRReg fpRegT0 = RISCV64Registers::f0;
    341     static constexpr FPRReg fpRegT1 = RISCV64Registers::f1;
    342     static constexpr FPRReg fpRegT2 = RISCV64Registers::f2;
    343     static constexpr FPRReg fpRegT3 = RISCV64Registers::f3;
    344     static constexpr FPRReg fpRegT4 = RISCV64Registers::f4;
    345     static constexpr FPRReg fpRegT5 = RISCV64Registers::f5;
    346     static constexpr FPRReg fpRegT6 = RISCV64Registers::f6;
    347     static constexpr FPRReg fpRegT7 = RISCV64Registers::f7;
    348     static constexpr FPRReg fpRegT8 = RISCV64Registers::f10;
    349     static constexpr FPRReg fpRegT9 = RISCV64Registers::f11;
    350     static constexpr FPRReg fpRegT10 = RISCV64Registers::f12;
    351     static constexpr FPRReg fpRegT11 = RISCV64Registers::f13;
    352     static constexpr FPRReg fpRegT12 = RISCV64Registers::f14;
    353     static constexpr FPRReg fpRegT13 = RISCV64Registers::f15;
    354     static constexpr FPRReg fpRegT14 = RISCV64Registers::f16;
    355     static constexpr FPRReg fpRegT15 = RISCV64Registers::f17;
     340    static constexpr FPRReg fpRegT0 = RISCV64Registers::f10;
     341    static constexpr FPRReg fpRegT1 = RISCV64Registers::f11;
     342    static constexpr FPRReg fpRegT2 = RISCV64Registers::f12;
     343    static constexpr FPRReg fpRegT3 = RISCV64Registers::f13;
     344    static constexpr FPRReg fpRegT4 = RISCV64Registers::f14;
     345    static constexpr FPRReg fpRegT5 = RISCV64Registers::f15;
     346    static constexpr FPRReg fpRegT6 = RISCV64Registers::f16;
     347    static constexpr FPRReg fpRegT7 = RISCV64Registers::f17;
     348    static constexpr FPRReg fpRegT8 = RISCV64Registers::f0;
     349    static constexpr FPRReg fpRegT9 = RISCV64Registers::f1;
     350    static constexpr FPRReg fpRegT10 = RISCV64Registers::f2;
     351    static constexpr FPRReg fpRegT11 = RISCV64Registers::f3;
     352    static constexpr FPRReg fpRegT12 = RISCV64Registers::f4;
     353    static constexpr FPRReg fpRegT13 = RISCV64Registers::f5;
     354    static constexpr FPRReg fpRegT14 = RISCV64Registers::f6;
     355    static constexpr FPRReg fpRegT15 = RISCV64Registers::f7;
    356356    static constexpr FPRReg fpRegT16 = RISCV64Registers::f28;
    357357    static constexpr FPRReg fpRegT17 = RISCV64Registers::f29;
    358     static constexpr FPRReg fpRegT18 = RISCV64Registers::f30;
    359     static constexpr FPRReg fpRegT19 = RISCV64Registers::f31;
    360358
    361359    static constexpr FPRReg fpRegCS0 = RISCV64Registers::f8;
     
    372370    static constexpr FPRReg fpRegCS11 = RISCV64Registers::f27;
    373371
    374     static constexpr FPRReg argumentFPR0 = RISCV64Registers::f10; // fpRegT8
    375     static constexpr FPRReg argumentFPR1 = RISCV64Registers::f11; // fpRegT9
    376     static constexpr FPRReg argumentFPR2 = RISCV64Registers::f12; // fpRegT10
    377     static constexpr FPRReg argumentFPR3 = RISCV64Registers::f13; // fpRegT11
    378     static constexpr FPRReg argumentFPR4 = RISCV64Registers::f14; // fpRegT12
    379     static constexpr FPRReg argumentFPR5 = RISCV64Registers::f15; // fpRegT13
    380     static constexpr FPRReg argumentFPR6 = RISCV64Registers::f16; // fpRegT14
    381     static constexpr FPRReg argumentFPR7 = RISCV64Registers::f17; // fpRegT15
    382 
    383     static constexpr FPRReg returnValueFPR = RISCV64Registers::f10; // fpRegT8
     372    static constexpr FPRReg argumentFPR0 = RISCV64Registers::f10; // fpRegT0
     373    static constexpr FPRReg argumentFPR1 = RISCV64Registers::f11; // fpRegT1
     374    static constexpr FPRReg argumentFPR2 = RISCV64Registers::f12; // fpRegT2
     375    static constexpr FPRReg argumentFPR3 = RISCV64Registers::f13; // fpRegT3
     376    static constexpr FPRReg argumentFPR4 = RISCV64Registers::f14; // fpRegT4
     377    static constexpr FPRReg argumentFPR5 = RISCV64Registers::f15; // fpRegT5
     378    static constexpr FPRReg argumentFPR6 = RISCV64Registers::f16; // fpRegT6
     379    static constexpr FPRReg argumentFPR7 = RISCV64Registers::f17; // fpRegT7
     380
     381    static constexpr FPRReg returnValueFPR = RISCV64Registers::f10; // fpRegT0
    384382
    385383    static FPRReg toRegister(unsigned index)
     
    389387            fpRegT0, fpRegT1, fpRegT2, fpRegT3, fpRegT4, fpRegT5, fpRegT6, fpRegT7,
    390388            fpRegT8, fpRegT9, fpRegT10, fpRegT11, fpRegT12, fpRegT13, fpRegT14, fpRegT15,
    391             fpRegT16, fpRegT17, fpRegT18, fpRegT19,
     389            fpRegT16, fpRegT17,
    392390        };
    393391        return registerForIndex[index];
     
    409407        ASSERT(static_cast<int>(reg) < 32);
    410408        static const unsigned indexForRegister[32] = {
    411             0, 1, 2, 3, 4, 5, 6, 7,
    412             InvalidIndex, InvalidIndex, 8, 9, 10, 11, 12, 13,
    413             14, 15, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
    414             InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 16, 17, 18, 19,
     409            8, 9, 10, 11, 12, 13, 14, 15,
     410            InvalidIndex, InvalidIndex, 0, 1, 2, 3, 4, 5,
     411            6, 7, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex,
     412            InvalidIndex, InvalidIndex, InvalidIndex, InvalidIndex, 16, 17, InvalidIndex, InvalidIndex,
    415413        };
    416414        return indexForRegister[reg];
Note: See TracChangeset for help on using the changeset viewer.