2022-05-26 23:08:16 +01:00
|
|
|
// 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
|
|
|
|
{
|
2023-03-03 20:21:14 +00:00
|
|
|
namespace A64
|
|
|
|
{
|
2022-05-26 23:08:16 +01:00
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// See Table C1-1 on page C1-229 of Arm ARM for A-profile architecture
|
2022-11-04 17:33:22 +00:00
|
|
|
enum class ConditionA64
|
2022-05-26 23:08:16 +01:00
|
|
|
{
|
2023-03-31 19:42:49 +01:00
|
|
|
// EQ: integer (equal), floating-point (equal)
|
2022-11-04 17:33:22 +00:00
|
|
|
Equal,
|
2023-03-31 19:42:49 +01:00
|
|
|
// NE: integer (not equal), floating-point (not equal or unordered)
|
2022-11-04 17:33:22 +00:00
|
|
|
NotEqual,
|
|
|
|
|
2023-04-21 23:14:26 +01:00
|
|
|
// CS: integer (carry set), unsigned integer (greater than, equal), floating-point (greater than, equal or unordered)
|
2022-11-04 17:33:22 +00:00
|
|
|
CarrySet,
|
2023-04-21 23:14:26 +01:00
|
|
|
// CC: integer (carry clear), unsigned integer (less than), floating-point (less than)
|
2022-11-04 17:33:22 +00:00
|
|
|
CarryClear,
|
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// MI: integer (negative), floating-point (less than)
|
2022-11-04 17:33:22 +00:00
|
|
|
Minus,
|
2023-03-31 19:42:49 +01:00
|
|
|
// PL: integer (positive or zero), floating-point (greater than, equal or unordered)
|
2022-11-04 17:33:22 +00:00
|
|
|
Plus,
|
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// VS: integer (overflow), floating-point (unordered)
|
2022-05-26 23:08:16 +01:00
|
|
|
Overflow,
|
2023-03-31 19:42:49 +01:00
|
|
|
// VC: integer (no overflow), floating-point (ordered)
|
2022-05-26 23:08:16 +01:00
|
|
|
NoOverflow,
|
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// HI: integer (unsigned higher), floating-point (greater than, or unordered)
|
2022-11-04 17:33:22 +00:00
|
|
|
UnsignedGreater,
|
2023-03-31 19:42:49 +01:00
|
|
|
// LS: integer (unsigned lower or same), floating-point (less than or equal)
|
2022-11-04 17:33:22 +00:00
|
|
|
UnsignedLessEqual,
|
2022-05-26 23:08:16 +01:00
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// GE: integer (signed greater than or equal), floating-point (greater than or equal)
|
2022-11-04 17:33:22 +00:00
|
|
|
GreaterEqual,
|
2023-03-31 19:42:49 +01:00
|
|
|
// LT: integer (signed less than), floating-point (less than, or unordered)
|
2022-05-26 23:08:16 +01:00
|
|
|
Less,
|
2023-03-31 19:42:49 +01:00
|
|
|
|
|
|
|
// GT: integer (signed greater than), floating-point (greater than)
|
2022-05-26 23:08:16 +01:00
|
|
|
Greater,
|
2023-03-31 19:42:49 +01:00
|
|
|
// LE: integer (signed less than or equal), floating-point (less than, equal or unordered)
|
2022-11-04 17:33:22 +00:00
|
|
|
LessEqual,
|
2022-05-26 23:08:16 +01:00
|
|
|
|
2023-03-31 19:42:49 +01:00
|
|
|
// AL: always
|
2022-11-04 17:33:22 +00:00
|
|
|
Always,
|
2022-10-14 20:48:41 +01:00
|
|
|
|
2022-05-26 23:08:16 +01:00
|
|
|
Count
|
|
|
|
};
|
|
|
|
|
2023-03-03 20:21:14 +00:00
|
|
|
} // namespace A64
|
2022-05-26 23:08:16 +01:00
|
|
|
} // namespace CodeGen
|
|
|
|
} // namespace Luau
|