mirror of
https://github.com/luau-lang/luau.git
synced 2024-12-14 06:00:39 +00:00
1212fdacbf
Once again, all of our changes this week are for new type solver and the JIT. In the new type solver, we fixed cyclic type alias handling and multiple stability issues. In the JIT, our main progress was for arm64, where, after lowering 36% of instructions, we start seeing first Luau functions executing natively. For x64, we performed code cleanup and refactoring to allow for future optimizations.
57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
// This file is part of the Luau programming language and is licensed under MIT License; see LICENSE.txt for details
|
|
#pragma once
|
|
|
|
namespace Luau
|
|
{
|
|
namespace CodeGen
|
|
{
|
|
namespace A64
|
|
{
|
|
|
|
// See Table C1-1 on page C1-229 of Arm ARM for A-profile architecture
|
|
enum class ConditionA64
|
|
{
|
|
// EQ: integer (equal), floating-point (equal)
|
|
Equal,
|
|
// NE: integer (not equal), floating-point (not equal or unordered)
|
|
NotEqual,
|
|
|
|
// CS: integer (carry set), floating-point (greater than, equal or unordered)
|
|
CarrySet,
|
|
// CC: integer (carry clear), floating-point (less than)
|
|
CarryClear,
|
|
|
|
// MI: integer (negative), floating-point (less than)
|
|
Minus,
|
|
// PL: integer (positive or zero), floating-point (greater than, equal or unordered)
|
|
Plus,
|
|
|
|
// VS: integer (overflow), floating-point (unordered)
|
|
Overflow,
|
|
// VC: integer (no overflow), floating-point (ordered)
|
|
NoOverflow,
|
|
|
|
// HI: integer (unsigned higher), floating-point (greater than, or unordered)
|
|
UnsignedGreater,
|
|
// LS: integer (unsigned lower or same), floating-point (less than or equal)
|
|
UnsignedLessEqual,
|
|
|
|
// GE: integer (signed greater than or equal), floating-point (greater than or equal)
|
|
GreaterEqual,
|
|
// LT: integer (signed less than), floating-point (less than, or unordered)
|
|
Less,
|
|
|
|
// GT: integer (signed greater than), floating-point (greater than)
|
|
Greater,
|
|
// LE: integer (signed less than or equal), floating-point (less than, equal or unordered)
|
|
LessEqual,
|
|
|
|
// AL: always
|
|
Always,
|
|
|
|
Count
|
|
};
|
|
|
|
} // namespace A64
|
|
} // namespace CodeGen
|
|
} // namespace Luau
|