Alien-LibJIT
view release on metacpan or search on metacpan
libjit/attic/jit-gen-alpha.h view on Meta::CPAN
#define ALPHA_OP_AMASK 0x11
#define ALPHA_OP_CMOVLE 0x11
#define ALPHA_OP_CMOVLE 0x11
#define ALPHA_OP_CMOVGT 0x11
#define ALPHA_OP_IMPLVER 0x11
#define ALPHA_OP_MSKBL 0x12
#define ALPHA_OP_EXTBL 0x12
#define ALPHA_OP_INSBL 0x12
#define ALPHA_OP_MSKWL 0x12
#define ALPHA_OP_EXTWL 0x12
#define ALPHA_OP_INSWL 0x12
#define ALPHA_OP_MSKLL 0x12
#define ALPHA_OP_EXTLL 0x12
#define ALPHA_OP_INSLL 0x12
#define ALPHA_OP_ZAP 0x12
#define ALPHA_OP_ZAPNOT 0x12
#define ALPHA_OP_MSKQL 0x12
#define ALPHA_OP_SRL 0x12
#define ALPHA_OP_EXTQA 0x12
#define ALPHA_OP_SLL 0x12
#define ALPHA_OP_INSQL 0x12
#define ALPHA_OP_SRA 0x12
#define ALPHA_OP_MSKWH 0x12
#define ALPHA_OP_INSWH 0x12
#define ALPHA_OP_EXTWH 0x12
#define ALPHA_OP_MSKLH 0x12
#define ALPHA_OP_INSLH 0x12
#define ALPHA_OP_EXTLH 0x12
#define ALPHA_OP_MSKQH 0x12
#define ALPHA_OP_INSQH 0x12
#define ALPHA_OP_EXTQH 0x12
#define ALPHA_OP_MULL 0x13
#define ALPHA_OP_MULQ 0x13
#define ALPHA_OP_UMULH 0x13
#define ALPHA_OP_MULLV 0x13
#define ALPHA_OP_MULLQV 0x13
#define ALPHA_OP_ITOFS 0x14
#define ALPHA_OP_ITOFF 0x14
#define ALPHA_OP_ITOFT 0x14
#define ALPHA_OP_ADDS 0x16
#define ALPHA_OP_SUBS 0x16
#define ALPHA_OP_ADDT 0x16
#define ALPHA_OP_SUBT 0x16
#define ALPHA_OP_MULT 0x16
#define ALPHA_OP_DIVT 0x16
#define ALPHA_OP_CPYS 0x17
#define ALPHA_OP_CPYSN 0x17
#define ALPHA_OP_CPYSE 0x17
#define ALPHA_OP_TRAPB 0x18
#define ALPHA_OP_JMP 0x1a
#define ALPHA_OP_JSR 0x1a
#define ALPHA_OP_RET 0x1a
#define ALPHA_OP_JSRCO 0x1a
#define ALPHA_OP_FTOIT 0x1c
#define ALPHA_OP_FTOIS 0x1c
#define ALPHA_OP_LDF 0x20
#define ALPHA_OP_LDG 0x21
#define ALPHA_OP_LDS 0x22
#define ALPHA_OP_LDT 0x23
#define ALPHA_OP_LDQF 0x23
#define ALPHA_OP_STF 0x24
#define ALPHA_OP_STG 0x25
#define ALPHA_OP_STS 0x26
#define ALPHA_OP_STT 0x27
#define ALPHA_OP_LDL 0x28
#define ALPHA_OP_LDQ 0x29
#define ALPHA_OP_LDL_L 0x2a
#define ALPHA_OP_LDQ_L 0x2b
#define ALPHA_OP_STL 0x2c
#define ALPHA_OP_STQ 0x2d
#define ALPHA_OP_STL_C 0x2e
#define ALPHA_OP_STQ_C 0x2f
#define ALPHA_OP_BR 0x30
#define ALPHA_OP_FBEQ 0x31
#define ALPHA_OP_FBLT 0x32
#define ALPHA_OP_FBLE 0x33
#define ALPHA_OP_BSR 0x34
#define ALPHA_OP_FBNE 0x35
#define ALPHA_OP_FBGE 0x36
#define ALPHA_OP_FBGT 0x37
#define ALPHA_OP_BLBC 0x38
#define ALPHA_OP_BEQ 0x39
#define ALPHA_OP_BLT 0x3a
#define ALPHA_OP_BLE 0x3b
#define ALPHA_OP_BLBS 0x3c
#define ALPHA_OP_BNE 0x3d
#define ALPHA_OP_BGE 0x3e
#define ALPHA_OP_BGT 0x3f
/*
* Define functions
*/
/* register operations -- use with ALPHA_OP_* == 0x10 */
#define ALPHA_FUNC_ADDL 0x00
#define ALPHA_FUNC_S4ADDL 0x02
#define ALPHA_FUNC_SUBL 0x09
#define ALPHA_FUNC_S4SUBL 0x0b
#define ALPHA_FUNC_CMPBGE 0x0f
#define ALPHA_FUNC_S8ADDL 0x12
#define ALPHA_FUNC_S8SUBL 0x1b
#define ALPHA_FUNC_CMPULT 0x1d
#define ALPHA_FUNC_ADDQ 0x20
#define ALPHA_FUNC_S4ADDQ 0x22
#define ALPHA_FUNC_SUBQ 0x29
#define ALPHA_FUNC_S4SUBQ 0x2b
#define ALPHA_FUNC_CMPEQ 0x2d
#define ALPHA_FUNC_S9ADDQ 0x32
#define ALPHA_FUNC_S9SUBQ 0x3b
#define ALPHA_FUNC_CMPULE 0x3d
#define ALPHA_FUNC_ADDLV 0x40
#define ALPHA_FUNC_SUBLV 0x49
#define ALPHA_FUNC_CMPLT 0x4d
#define ALPHA_FUNC_ADDQV 0x60
#define ALPHA_FUNC_SUBQV 0x69
#define ALPHA_FUNC_CMPLE 0x6d
/* bitwise operations -- use with ALPHA_OP_* == 0x11 */
#define ALPHA_FUNC_AND 0x00
#define ALPHA_FUNC_BIC 0x08
#define ALPHA_FUNC_CMOVLBS 0x14
#define ALPHA_FUNC_CMOVLBC 0x16
#define ALPHA_FUNC_NOOP 0x20
#define ALPHA_FUNC_CLR 0x20
#define ALPHA_FUNC_MOV 0x20
#define ALPHA_FUNC_OR 0x20
#define ALPHA_FUNC_CMOVEQ 0x24
#define ALPHA_FUNC_CMOVNE 0x2C
#define ALPHA_FUNC_NOT 0x28
#define ALPHA_FUNC_ORNOT 0x28
#define ALPHA_FUNC_XOR 0x40
#define ALPHA_FUNC_CMOVLT 0x44
#define ALPHA_FUNC_COMVGE 0x46
#define ALPHA_FUNC_EQV 0x48
#define ALPHA_FUNC_AMASK 0x61
#define ALPHA_FUNC_CMOVLE 0x64
#define ALPHA_FUNC_CMOVGT 0x66
#define ALPHA_FUNC_IMPLVER 0x6c
#define ALPHA_FUNC_CMOVGT 0x66
/* byte manipulation operations -- use with ALPHA_OP_* == 0x12 */
#define ALPHA_FUNC_MSKBL 0x02
#define ALPHA_FUNC_EXTBL 0x06
#define ALPHA_FUNC_INSBL 0x0b
#define ALPHA_FUNC_MSKWL 0x12
#define ALPHA_FUNC_EXTWL 0x16
#define ALPHA_FUNC_INSWL 0x1b
#define ALPHA_FUNC_MSKLL 0x22
#define ALPHA_FUNC_EXTLL 0x26
#define ALPHA_FUNC_INSLL 0x2b
#define ALPHA_FUNC_ZAP 0x30
#define ALPHA_FUNC_ZAPNOT 0x31
#define ALPHA_FUNC_MSKQL 0x32
#define ALPHA_FUNC_SRL 0x34
#define ALPHA_FUNC_EXTQL 0x36
#define ALPHA_FUNC_SLL 0x39
#define ALPHA_FUNC_INSQL 0x3b
#define ALPHA_FUNC_SRA 0x3c
#define ALPHA_FUNC_MSKWH 0x52
#define ALPHA_FUNC_INSWH 0x57
#define ALPHA_FUNC_EXTWH 0x5a
#define ALPHA_FUNC_MSKLH 0x62
#define ALPHA_FUNC_INSLH 0x67
#define ALPHA_FUNC_EXTLH 0x6a
#define ALPHA_FUNC_MSKQH 0x72
#define ALPHA_FUNC_INSQH 0x77
#define ALPHA_FUNC_EXTQH 0x7a
/* multiplication operations -- use with ALPHA_OP_* == 0x13 */
#define ALPHA_FUNC_MULL 0x00
#define ALPHA_FUNC_MULQ 0x20
#define ALPHA_FUNC_UMULH 0x30
#define ALPHA_FUNC_MULLV 0x40
#define ALPHA_FUNC_MULQV 0x60
/* integer to floating point operations -- use with ALPHA_OP_* == 0x14 */
#define ALPHA_FUNC_ITOFS 0x4
#define ALPHA_FUNC_ITOFF 0x14
#define ALPHA_FUNC_ITOFT 0x24
/* floating point arithmetic operations -- use with ALPHA_OP_* == 0x16 */
#define ALPHA_FUNC_ADDS 0x80
#define ALPHA_FUNC_SUBS 0x81
#define ALPHA_FUNC_ADDT 0xA0
#define ALPHA_FUNC_SUBT 0xA1
#define ALPHA_FUNC_MULT 0xA2
#define ALPHA_FUNC_DIVT 0xA3
/* floating point sign copy operations -- use with ALPHA_OP_* == 0x17 */
#define ALPHA_FUNC_CPYS 0x20
#define ALPHA_FUNC_CPYSN 0x21
#define ALPHA_FUNC_CPYSE 0x22
/* trap barrier -- use with ALPHA_OP_* == 0x18 */
#define ALPHA_FUNC_TRAPB 0x0
/* branching operations -- use with ALPHA_OP_* == 0x1a */
#define ALPHA_FUNC_JMP 0x0
#define ALPHA_FUNC_JSR 0x1
#define ALPHA_FUNC_RET 0x2
#define ALPHA_FUNC_JSRCO 0x3
/* floating point to integer operations -- use with ALPHA_OP_* == 0x1c */
#define ALPHA_FUNC_FTOIT 0x70
#define ALPHA_FUNC_FTOIS 0x78
/* encode registers */
#define alpha_encode_reg_a(reg) \
((reg & ALPHA_REG_MASK) << ALPHA_REGA_SHIFT)
#define alpha_encode_reg_b(reg) \
((reg & ALPHA_REG_MASK) << ALPHA_REGB_SHIFT)
#define alpha_encode_reg_c(reg) \
((reg & ALPHA_REG_MASK) << ALPHA_REGC_SHIFT)
/* encode literals */
#define alpha_encode_lit(lit) \
((lit & ALPHA_LIT_MASK) << ALPHA_LIT_SHIFT)
/* encode opcodes */
#define alpha_encode_op(op) \
((op & ALPHA_OP_MASK) << ALPHA_OP_SHIFT)
/* encode function codes */
#define alpha_encode_func(func) \
((func & ALPHA_FUNC_MASK) << ALPHA_FUNC_SHIFT)
#define alpha_encode_fp_func(func) \
((func & ALPHA_FP_FUNC_MASK) << ALPHA_FUNC_SHIFT)
#define alpha_encode_func_mem_branch(func,hint) \
(((func & ALPHA_FUNC_MEM_BRANCH_MASK) << ALPHA_FUNC_MEM_BRANCH_SHIFT) | \
(hint & ALPHA_HINT_MASK))
/*
* instruction encoding
*/
( run in 0.516 second using v1.01-cache-2.11-cpan-df04353d9ac )