mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-30 05:29:47 +00:00
- Fix bugs 3194, 3195: i128 load/stores produce correct code (although, we need to ensure that i128 is 16-byte aligned in real life), and 128 zero- extends are supported. - New td file: SPU128InstrInfo.td: this is where all new i128 support should be put in the future. - Continue to hammer on i64 operations and test cases; ensure that the only remaining problem will be i64 mul. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61784 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.1 KiB
C
44 lines
1.1 KiB
C
#define TRUE_VAL (!0)
|
|
#define FALSE_VAL 0
|
|
#define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
|
|
|
|
typedef unsigned long long int uint64_t;
|
|
typedef long long int int64_t;
|
|
|
|
/* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */
|
|
struct harness_int64_pred {
|
|
const char *fmt_string;
|
|
int64_t *lhs;
|
|
int64_t *rhs;
|
|
int64_t *select_a;
|
|
int64_t *select_b;
|
|
int expected;
|
|
int64_t *select_expected;
|
|
};
|
|
|
|
struct harness_uint64_pred {
|
|
const char *fmt_string;
|
|
uint64_t *lhs;
|
|
uint64_t *rhs;
|
|
uint64_t *select_a;
|
|
uint64_t *select_b;
|
|
int expected;
|
|
uint64_t *select_expected;
|
|
};
|
|
|
|
struct int64_pred_s {
|
|
const char *name;
|
|
int (*predfunc) (int64_t, int64_t);
|
|
int64_t (*selfunc) (int64_t, int64_t, int64_t, int64_t);
|
|
struct harness_int64_pred *tests;
|
|
int n_tests;
|
|
};
|
|
|
|
struct uint64_pred_s {
|
|
const char *name;
|
|
int (*predfunc) (uint64_t, uint64_t);
|
|
uint64_t (*selfunc) (uint64_t, uint64_t, uint64_t, uint64_t);
|
|
struct harness_uint64_pred *tests;
|
|
int n_tests;
|
|
};
|