Rizin
unix-like reverse engineering framework and cli tools
lanai.h File Reference

Go to the source code of this file.

Classes

struct  lanai_opcode
 

Macros

#define lanai_architecture   bfd_lanai_architecture
 
#define architecture_pname   bfd_lanai_architecture_pname
 
#define lanai_opcode   bfd_lanai_opcode
 
#define lanai_opcodes   bfd_lanai_opcodes
 
#define F_ALIAS   1 /* Alias for a "real" instruction */
 
#define F_JSR   2 /* Subroutine call */
 
#define F_RI   0x10
 
#define F_RR   0x20
 
#define F_RRR   0x40
 
#define F_RM   0x80
 
#define F_RRM   0x100
 
#define F_BR   0x200
 
#define F_SLS   0x400
 
#define F_SLI   0x800
 
#define F_SPLS   0x1000
 
#define F_PUNT   0x2000
 
#define F_SBR   0x4000
 
#define F_SCC   0x8000
 
#define F_BYTE   0x20000
 
#define F_HALF   0x10000
 
#define F_FULL   0x00000
 
#define F_DATA_SIZE(X)   (4 >> ((X)&0x30000))
 
#define F_CONDITIONAL   0x40000
 
#define F_REL   0x80000
 
#define F_LEADZ   0x100000
 
#define F_POPC   0x200000
 
#define F_CONDBR   (F_BR | F_CONDITIONAL) /* Conditional branch */
 
#define F_UNBR   (F_BR) /* Unconditional branch */
 
#define F_RELCONDBR   (F_REL | F_BR | F_CONDITIONAL) /* Conditional branch */
 
#define F_RELUNBR   (F_REL | F_BR) /* Unconditional branch */
 
#define L3_USE_SI
 
#define L3_USE_SPLS
 
#define L3_USE_SLS
 
#define L3_USE_SLI
 
#define L3_USE_SBR
 
#define L3_T   0
 
#define L3_F   1
 
#define L3_HI   2
 
#define L3_LS   3
 
#define L3_CC   4
 
#define L3_CS   5
 
#define L3_NE   6
 
#define L3_EQ   7
 
#define L3_VC   8
 
#define L3_VS   9
 
#define L3_PL   10
 
#define L3_MI   11
 
#define L3_GE   12
 
#define L3_LT   13
 
#define L3_GT   14
 
#define L3_LE   15
 
#define L3_UGE   L3_CC
 
#define L3_ULT   L3_CS
 
#define L3_UGT   L3_GT
 
#define L3_ULE   L3_LE
 
#define L3_RI   (0x00000000)
 
#define L3_RI_OPCODE_MASK   (0x80000000)
 
#define L3_RI_MASK   (0xf0030000)
 
#define L3_RR   (0xc0000000)
 
#define L3_RR_OPCODE_MASK   (0xf0000003)
 
#define L3_RR_MASK   (0xf00207fb)
 
#define L3_LEADZ   (0xc0000002)
 
#define L3_LEADZ_OPCODE_MASK   L3_RR_OPCODE_MASK
 
#define L3_LEADZ_MASK   (0xf00207fb)
 
#define L3_POPC   (0xc0000003)
 
#define L3_POPC_OPCODE_MASK   L3_RR_OPCODE_MASK
 
#define L3_POPC_MASK   (0xf00207fb)
 
#define L3_RRR   (0xd0000000)
 
#define L3_RRR_OPCODE_MASK   (0xf0000000)
 
#define L3_RRR_MASK   (0xf0000000)
 
#define L3_RM   (0x80000000)
 
#define L3_RM_OPCODE_MASK   (0xe0000000)
 
#define L3_RM_MASK   (0xf0030000)
 
#define L3_RRM   (0xa0000000)
 
#define L3_RRM_OPCODE_MASK   (0xe0000000)
 
#define L3_RRM_MASK   (0xe0030007)
 
#define L3_BR   (0xe0000000)
 
#define L3_BR_OPCODE_MASK   (0xf0000002)
 
#define L3_BR_MASK   (0xfe000003)
 
#define L3_BRR   (0xe1000002)
 
#define L3_BRR_OPCODE_MASK   (0xf1000002)
 
#define L3_BRR_MASK   (0xff000003)
 
#define L3_SCC   (0xe0000002)
 
#define L3_SCC_OPCODE_MASK   (0xf1000002)
 
#define L3_SCC_MASK   (0xff000003)
 
#define L3_SLS   (0xf0000000)
 
#define L3_SLS_OPCODE_MASK   (0xf0020000)
 
#define L3_SLS_MASK   (0xf0030000)
 
#define L3_SLI   (0xf0020000)
 
#define L3_SLI_OPCODE_MASK   (0xf0030000)
 
#define L3_SLI_MASK   (0xf0030000)
 
#define L3_SPLS   (0xf0030000)
 
#define L3_SPLS_OPCODE_MASK   (0xf0038000)
 
#define L3_SPLS_MASK   (0xf003fc00)
 
#define L3_PUNT   (0xf003ff47)
 
#define L3_PUNT_OPCODE_MASK   (0xf003ff47)
 
#define L3_PUNT_MASK   (0xf003ff47)
 
#define L3_SBR   (0xf003c000)
 
#define L3_SBR_OPCODE_MASK   (0xf003f806)
 
#define L3_SBR_MASK   (0xfe03f807)
 
#define L3_ADD   (0x00)
 
#define L3_ADDC   (0x01)
 
#define L3_SUB   (0x02)
 
#define L3_SUBB   (0x03)
 
#define L3_AND   (0x04)
 
#define L3_OR   (0x05)
 
#define L3_XOR   (0x06)
 
#define L3_SH   (0x07)
 
#define L3_OP_MASK   (0x07)
 
#define L3_FLAGS   (0x08)
 
#define L3_ARITH   (0x10)
 
#define L3_HALFWORD   0
 
#define L3_BYTE   4 /* was 1 */
 
#define L3_FULLWORD   2
 
#define L3_SIGNED   0
 
#define L3_UNSIGNED   1 /* was 4 */
 
#define L3_SIGNED_HALFWORD   (L3_SIGNED | L3_HALFWORD)
 
#define L3_SIGNED_BYTE   (L3_SIGNED | L3_BYTE)
 
#define L3_SIGNED_FULLWORD   (L3_SIGNED | L3_FULLWORD)
 
#define L3_UNSIGNED_HALFWORD   (L3_UNSIGNED | L3_HALFWORD)
 
#define L3_UNSIGNED_BYTE   (L3_UNSIGNED | L3_BYTE)
 
#define L3_UNSIGNED_FULLWORD   (L3_UNSIGNED | L3_FULLWORD)
 
#define L3_RI_F   (0x00020000)
 
#define L3_RI_H   (0x00010000)
 
#define L3_RR_F   (0x00020000)
 
#define L3_LEADZ_F   L3_RR_F
 
#define L3_POPC_F   L3_RR_F
 
#define L3_RRR_F   (0x00020000)
 
#define L3_RRR_H   (0x00010000)
 
#define L3_RM_P   (0x00020000)
 
#define L3_RM_Q   (0x00010000)
 
#define L3_RM_S   (0x10000000)
 
#define L3_RRM_P   (0x00020000)
 
#define L3_RRM_Q   (0x00010000)
 
#define L3_RRM_S   (0x10000000)
 
#define L3_RRM_Y   (0x00000004)
 
#define L3_RRM_L   (0x00000002)
 
#define L3_RRM_E   (0x00000001)
 
#define L3_BR_R   (0x00000002)
 
#define L3_SLS_S   (0x00010000)
 
#define L3_SPLS_Y   (0x00004000)
 
#define L3_SPLS_S   (0x00002000)
 
#define L3_SPLS_E   (0x00001000)
 
#define L3_SPLS_P   (0x00000800)
 
#define L3_SPLS_Q   (0x00000400)
 
#define L3_SI_F   (0x00002000)
 
#define L3_SBR_H   (0x00000004)
 
#define L3_SBR_R   (0x00000002)
 
#define L3_SBR_N   (0x00000001)
 
#define L3_CONST_MASK   (0x0000ffff)
 
#define L3_BR_CONST_MASK   (0x01fffffc)
 
#define L3_SPLS_CONST_MASK   (0x000003ff)
 
#define L3_RD(x)   (((x)&0x1f) << 23)
 
#define L3_RS1(x)   (((x)&0x1f) << 18)
 
#define L3_RS2(x)   (((x)&0x1f) << 11)
 
#define L3_RS3(x)   (((x)&0x1f) << 3)
 
#define L3_RI_OP(x)   (((x)&L3_OP_MASK) << 28)
 
#define L3_RR_OP(x)   (((x)&L3_OP_MASK) << 8)
 
#define L3_RRR_OP1(x)   (((x)&L3_OP_MASK) << 0)
 
#define L3_RRR_OP2(x)   (((x)&L3_OP_MASK) << 8)
 
#define L3_RRM_OP(x)   (((x)&L3_OP_MASK) << 8)
 
#define L3_RRM_MODE(x)   (((x)&0x7) << 0)
 
#define L3_BR_COND(x)   ((((x)&0xe) << 24) | ((x)&1))
 
#define L3_SBR_COND(x)   ((((x)&0xe) << 24) | ((x)&1))
 
#define L3_SLS_HIBITS(x)   (((x)&0x1f) << 18)
 
#define L3_SLS_CONST(x)   ((((x)&0x1f) << 18) | ((x)&0xffff))
 
#define L3_SLI_CONST(x)   ((((x)&0x1f) << 18) | ((x)&0xffff))
 
#define L3_SPLS_MODE(x)   (((x)&0x5) << 12)
 
#define L3_SBR_OP(x)   (((x)&0x7) << 8)
 
#define L3_OP1(x)   (((x)&0x7) << 0)
 
#define L3_OP2(x)   (((x)&0x7) << 8)
 
#define SIGN_EXT(value, bits)    ((((int)(value)) << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits))
 
#define X_RD(i)   (((i) >> 23) & 0x1f)
 
#define X_RS1(i)   (((i) >> 18) & 0x1f)
 
#define X_RS2(i)   (((i) >> 11) & 0x1f)
 
#define X_RS3(i)   (((i) >> 3) & 0x1f)
 
#define X_OP1(i)   (((i) >> 0) & 0x07)
 
#define X_OP2(i)   (((i) >> 8) & 0x07)
 
#define X_RI_OP(i)   (((i) >> 28) & 0x07)
 
#define X_RR_OP(i)   X_OP2(i)
 
#define X_RRM_OP(i)   X_OP2(i)
 
#define X_RRR_OP1(i)   X_OP1(i)
 
#define X_RRR_OP2(i)   X_OP2(i)
 
#define X_C10(i)   ((i)&0x3ff)
 
#define X_C16(i)   ((i)&0xffff)
 
#define X_C21(i)   (((i)&0xffff) | (((i)&0x7c0000) >> 2))
 
#define X_C25(i)   ((i)&0x1fffffc)
 
#define NUMOPCODES   bfd_lanai_num_opcodes
 

Enumerations

enum  lanai_architecture { v0 = 0 , v1 }
 

Variables

const char * architecture_pname []
 
struct lanai_opcode lanai_opcodes []
 
const int bfd_lanai_num_opcodes
 

Macro Definition Documentation

◆ architecture_pname

#define architecture_pname   bfd_lanai_architecture_pname

Definition at line 74 of file lanai.h.

◆ F_ALIAS

#define F_ALIAS   1 /* Alias for a "real" instruction */

Definition at line 99 of file lanai.h.

◆ F_BR

#define F_BR   0x200

Definition at line 107 of file lanai.h.

◆ F_BYTE

#define F_BYTE   0x20000

Definition at line 115 of file lanai.h.

◆ F_CONDBR

#define F_CONDBR   (F_BR | F_CONDITIONAL) /* Conditional branch */

Definition at line 125 of file lanai.h.

◆ F_CONDITIONAL

#define F_CONDITIONAL   0x40000

Definition at line 119 of file lanai.h.

◆ F_DATA_SIZE

#define F_DATA_SIZE (   X)    (4 >> ((X)&0x30000))

Definition at line 118 of file lanai.h.

◆ F_FULL

#define F_FULL   0x00000

Definition at line 117 of file lanai.h.

◆ F_HALF

#define F_HALF   0x10000

Definition at line 116 of file lanai.h.

◆ F_JSR

#define F_JSR   2 /* Subroutine call */

Definition at line 100 of file lanai.h.

◆ F_LEADZ

#define F_LEADZ   0x100000

Definition at line 122 of file lanai.h.

◆ F_POPC

#define F_POPC   0x200000

Definition at line 123 of file lanai.h.

◆ F_PUNT

#define F_PUNT   0x2000

Definition at line 111 of file lanai.h.

◆ F_REL

#define F_REL   0x80000

Definition at line 120 of file lanai.h.

◆ F_RELCONDBR

#define F_RELCONDBR   (F_REL | F_BR | F_CONDITIONAL) /* Conditional branch */

Definition at line 127 of file lanai.h.

◆ F_RELUNBR

#define F_RELUNBR   (F_REL | F_BR) /* Unconditional branch */

Definition at line 128 of file lanai.h.

◆ F_RI

#define F_RI   0x10

Definition at line 102 of file lanai.h.

◆ F_RM

#define F_RM   0x80

Definition at line 105 of file lanai.h.

◆ F_RR

#define F_RR   0x20

Definition at line 103 of file lanai.h.

◆ F_RRM

#define F_RRM   0x100

Definition at line 106 of file lanai.h.

◆ F_RRR

#define F_RRR   0x40

Definition at line 104 of file lanai.h.

◆ F_SBR

#define F_SBR   0x4000

Definition at line 112 of file lanai.h.

◆ F_SCC

#define F_SCC   0x8000

Definition at line 113 of file lanai.h.

◆ F_SLI

#define F_SLI   0x800

Definition at line 109 of file lanai.h.

◆ F_SLS

#define F_SLS   0x400

Definition at line 108 of file lanai.h.

◆ F_SPLS

#define F_SPLS   0x1000

Definition at line 110 of file lanai.h.

◆ F_UNBR

#define F_UNBR   (F_BR) /* Unconditional branch */

Definition at line 126 of file lanai.h.

◆ L3_ADD

#define L3_ADD   (0x00)

Definition at line 271 of file lanai.h.

◆ L3_ADDC

#define L3_ADDC   (0x01)

Definition at line 272 of file lanai.h.

◆ L3_AND

#define L3_AND   (0x04)

Definition at line 275 of file lanai.h.

◆ L3_ARITH

#define L3_ARITH   (0x10)

Definition at line 281 of file lanai.h.

◆ L3_BR

#define L3_BR   (0xe0000000)

Definition at line 239 of file lanai.h.

◆ L3_BR_COND

#define L3_BR_COND (   x)    ((((x)&0xe) << 24) | ((x)&1))

Definition at line 355 of file lanai.h.

◆ L3_BR_CONST_MASK

#define L3_BR_CONST_MASK   (0x01fffffc)

Definition at line 340 of file lanai.h.

◆ L3_BR_MASK

#define L3_BR_MASK   (0xfe000003)

Definition at line 241 of file lanai.h.

◆ L3_BR_OPCODE_MASK

#define L3_BR_OPCODE_MASK   (0xf0000002)

Definition at line 240 of file lanai.h.

◆ L3_BR_R

#define L3_BR_R   (0x00000002)

Definition at line 321 of file lanai.h.

◆ L3_BRR

#define L3_BRR   (0xe1000002)

Definition at line 242 of file lanai.h.

◆ L3_BRR_MASK

#define L3_BRR_MASK   (0xff000003)

Definition at line 244 of file lanai.h.

◆ L3_BRR_OPCODE_MASK

#define L3_BRR_OPCODE_MASK   (0xf1000002)

Definition at line 243 of file lanai.h.

◆ L3_BYTE

#define L3_BYTE   4 /* was 1 */

Definition at line 285 of file lanai.h.

◆ L3_CC

#define L3_CC   4

Definition at line 193 of file lanai.h.

◆ L3_CONST_MASK

#define L3_CONST_MASK   (0x0000ffff)

Definition at line 339 of file lanai.h.

◆ L3_CS

#define L3_CS   5

Definition at line 194 of file lanai.h.

◆ L3_EQ

#define L3_EQ   7

Definition at line 196 of file lanai.h.

◆ L3_F

#define L3_F   1

Definition at line 190 of file lanai.h.

◆ L3_FLAGS

#define L3_FLAGS   (0x08)

Definition at line 280 of file lanai.h.

◆ L3_FULLWORD

#define L3_FULLWORD   2

Definition at line 286 of file lanai.h.

◆ L3_GE

#define L3_GE   12

Definition at line 201 of file lanai.h.

◆ L3_GT

#define L3_GT   14

Definition at line 203 of file lanai.h.

◆ L3_HALFWORD

#define L3_HALFWORD   0

Definition at line 284 of file lanai.h.

◆ L3_HI

#define L3_HI   2

Definition at line 191 of file lanai.h.

◆ L3_LE

#define L3_LE   15

Definition at line 204 of file lanai.h.

◆ L3_LEADZ

#define L3_LEADZ   (0xc0000002)

Definition at line 224 of file lanai.h.

◆ L3_LEADZ_F

#define L3_LEADZ_F   L3_RR_F

Definition at line 304 of file lanai.h.

◆ L3_LEADZ_MASK

#define L3_LEADZ_MASK   (0xf00207fb)

Definition at line 226 of file lanai.h.

◆ L3_LEADZ_OPCODE_MASK

#define L3_LEADZ_OPCODE_MASK   L3_RR_OPCODE_MASK

Definition at line 225 of file lanai.h.

◆ L3_LS

#define L3_LS   3

Definition at line 192 of file lanai.h.

◆ L3_LT

#define L3_LT   13

Definition at line 202 of file lanai.h.

◆ L3_MI

#define L3_MI   11

Definition at line 200 of file lanai.h.

◆ L3_NE

#define L3_NE   6

Definition at line 195 of file lanai.h.

◆ L3_OP1

#define L3_OP1 (   x)    (((x)&0x7) << 0)

Definition at line 366 of file lanai.h.

◆ L3_OP2

#define L3_OP2 (   x)    (((x)&0x7) << 8)

Definition at line 367 of file lanai.h.

◆ L3_OP_MASK

#define L3_OP_MASK   (0x07)

Definition at line 279 of file lanai.h.

◆ L3_OR

#define L3_OR   (0x05)

Definition at line 276 of file lanai.h.

◆ L3_PL

#define L3_PL   10

Definition at line 199 of file lanai.h.

◆ L3_POPC

#define L3_POPC   (0xc0000003)

Definition at line 227 of file lanai.h.

◆ L3_POPC_F

#define L3_POPC_F   L3_RR_F

Definition at line 305 of file lanai.h.

◆ L3_POPC_MASK

#define L3_POPC_MASK   (0xf00207fb)

Definition at line 229 of file lanai.h.

◆ L3_POPC_OPCODE_MASK

#define L3_POPC_OPCODE_MASK   L3_RR_OPCODE_MASK

Definition at line 228 of file lanai.h.

◆ L3_PUNT

#define L3_PUNT   (0xf003ff47)

Definition at line 263 of file lanai.h.

◆ L3_PUNT_MASK

#define L3_PUNT_MASK   (0xf003ff47)

Definition at line 265 of file lanai.h.

◆ L3_PUNT_OPCODE_MASK

#define L3_PUNT_OPCODE_MASK   (0xf003ff47)

Definition at line 264 of file lanai.h.

◆ L3_RD

#define L3_RD (   x)    (((x)&0x1f) << 23)

Definition at line 344 of file lanai.h.

◆ L3_RI

#define L3_RI   (0x00000000)

Definition at line 218 of file lanai.h.

◆ L3_RI_F

#define L3_RI_F   (0x00020000)

Definition at line 300 of file lanai.h.

◆ L3_RI_H

#define L3_RI_H   (0x00010000)

Definition at line 301 of file lanai.h.

◆ L3_RI_MASK

#define L3_RI_MASK   (0xf0030000)

Definition at line 220 of file lanai.h.

◆ L3_RI_OP

#define L3_RI_OP (   x)    (((x)&L3_OP_MASK) << 28)

Definition at line 349 of file lanai.h.

◆ L3_RI_OPCODE_MASK

#define L3_RI_OPCODE_MASK   (0x80000000)

Definition at line 219 of file lanai.h.

◆ L3_RM

#define L3_RM   (0x80000000)

Definition at line 233 of file lanai.h.

◆ L3_RM_MASK

#define L3_RM_MASK   (0xf0030000)

Definition at line 235 of file lanai.h.

◆ L3_RM_OPCODE_MASK

#define L3_RM_OPCODE_MASK   (0xe0000000)

Definition at line 234 of file lanai.h.

◆ L3_RM_P

#define L3_RM_P   (0x00020000)

Definition at line 310 of file lanai.h.

◆ L3_RM_Q

#define L3_RM_Q   (0x00010000)

Definition at line 311 of file lanai.h.

◆ L3_RM_S

#define L3_RM_S   (0x10000000)

Definition at line 312 of file lanai.h.

◆ L3_RR

#define L3_RR   (0xc0000000)

Definition at line 221 of file lanai.h.

◆ L3_RR_F

#define L3_RR_F   (0x00020000)

Definition at line 303 of file lanai.h.

◆ L3_RR_MASK

#define L3_RR_MASK   (0xf00207fb)

Definition at line 223 of file lanai.h.

◆ L3_RR_OP

#define L3_RR_OP (   x)    (((x)&L3_OP_MASK) << 8)

Definition at line 350 of file lanai.h.

◆ L3_RR_OPCODE_MASK

#define L3_RR_OPCODE_MASK   (0xf0000003)

Definition at line 222 of file lanai.h.

◆ L3_RRM

#define L3_RRM   (0xa0000000)

Definition at line 236 of file lanai.h.

◆ L3_RRM_E

#define L3_RRM_E   (0x00000001)

Definition at line 319 of file lanai.h.

◆ L3_RRM_L

#define L3_RRM_L   (0x00000002)

Definition at line 318 of file lanai.h.

◆ L3_RRM_MASK

#define L3_RRM_MASK   (0xe0030007)

Definition at line 238 of file lanai.h.

◆ L3_RRM_MODE

#define L3_RRM_MODE (   x)    (((x)&0x7) << 0)

Definition at line 354 of file lanai.h.

◆ L3_RRM_OP

#define L3_RRM_OP (   x)    (((x)&L3_OP_MASK) << 8)

Definition at line 353 of file lanai.h.

◆ L3_RRM_OPCODE_MASK

#define L3_RRM_OPCODE_MASK   (0xe0000000)

Definition at line 237 of file lanai.h.

◆ L3_RRM_P

#define L3_RRM_P   (0x00020000)

Definition at line 314 of file lanai.h.

◆ L3_RRM_Q

#define L3_RRM_Q   (0x00010000)

Definition at line 315 of file lanai.h.

◆ L3_RRM_S

#define L3_RRM_S   (0x10000000)

Definition at line 316 of file lanai.h.

◆ L3_RRM_Y

#define L3_RRM_Y   (0x00000004)

Definition at line 317 of file lanai.h.

◆ L3_RRR

#define L3_RRR   (0xd0000000)

Definition at line 230 of file lanai.h.

◆ L3_RRR_F

#define L3_RRR_F   (0x00020000)

Definition at line 307 of file lanai.h.

◆ L3_RRR_H

#define L3_RRR_H   (0x00010000)

Definition at line 308 of file lanai.h.

◆ L3_RRR_MASK

#define L3_RRR_MASK   (0xf0000000)

Definition at line 232 of file lanai.h.

◆ L3_RRR_OP1

#define L3_RRR_OP1 (   x)    (((x)&L3_OP_MASK) << 0)

Definition at line 351 of file lanai.h.

◆ L3_RRR_OP2

#define L3_RRR_OP2 (   x)    (((x)&L3_OP_MASK) << 8)

Definition at line 352 of file lanai.h.

◆ L3_RRR_OPCODE_MASK

#define L3_RRR_OPCODE_MASK   (0xf0000000)

Definition at line 231 of file lanai.h.

◆ L3_RS1

#define L3_RS1 (   x)    (((x)&0x1f) << 18)

Definition at line 345 of file lanai.h.

◆ L3_RS2

#define L3_RS2 (   x)    (((x)&0x1f) << 11)

Definition at line 346 of file lanai.h.

◆ L3_RS3

#define L3_RS3 (   x)    (((x)&0x1f) << 3)

Definition at line 347 of file lanai.h.

◆ L3_SBR

#define L3_SBR   (0xf003c000)

Definition at line 266 of file lanai.h.

◆ L3_SBR_COND

#define L3_SBR_COND (   x)    ((((x)&0xe) << 24) | ((x)&1))

Definition at line 356 of file lanai.h.

◆ L3_SBR_H

#define L3_SBR_H   (0x00000004)

Definition at line 333 of file lanai.h.

◆ L3_SBR_MASK

#define L3_SBR_MASK   (0xfe03f807)

Definition at line 268 of file lanai.h.

◆ L3_SBR_N

#define L3_SBR_N   (0x00000001)

Definition at line 335 of file lanai.h.

◆ L3_SBR_OP

#define L3_SBR_OP (   x)    (((x)&0x7) << 8)

Definition at line 364 of file lanai.h.

◆ L3_SBR_OPCODE_MASK

#define L3_SBR_OPCODE_MASK   (0xf003f806)

Definition at line 267 of file lanai.h.

◆ L3_SBR_R

#define L3_SBR_R   (0x00000002)

Definition at line 334 of file lanai.h.

◆ L3_SCC

#define L3_SCC   (0xe0000002)

Definition at line 245 of file lanai.h.

◆ L3_SCC_MASK

#define L3_SCC_MASK   (0xff000003)

Definition at line 247 of file lanai.h.

◆ L3_SCC_OPCODE_MASK

#define L3_SCC_OPCODE_MASK   (0xf1000002)

Definition at line 246 of file lanai.h.

◆ L3_SH

#define L3_SH   (0x07)

Definition at line 278 of file lanai.h.

◆ L3_SI_F

#define L3_SI_F   (0x00002000)

Definition at line 331 of file lanai.h.

◆ L3_SIGNED

#define L3_SIGNED   0

Definition at line 289 of file lanai.h.

◆ L3_SIGNED_BYTE

#define L3_SIGNED_BYTE   (L3_SIGNED | L3_BYTE)

Definition at line 293 of file lanai.h.

◆ L3_SIGNED_FULLWORD

#define L3_SIGNED_FULLWORD   (L3_SIGNED | L3_FULLWORD)

Definition at line 294 of file lanai.h.

◆ L3_SIGNED_HALFWORD

#define L3_SIGNED_HALFWORD   (L3_SIGNED | L3_HALFWORD)

Definition at line 292 of file lanai.h.

◆ L3_SLI

#define L3_SLI   (0xf0020000)

Definition at line 251 of file lanai.h.

◆ L3_SLI_CONST

#define L3_SLI_CONST (   x)    ((((x)&0x1f) << 18) | ((x)&0xffff))

Definition at line 362 of file lanai.h.

◆ L3_SLI_MASK

#define L3_SLI_MASK   (0xf0030000)

Definition at line 253 of file lanai.h.

◆ L3_SLI_OPCODE_MASK

#define L3_SLI_OPCODE_MASK   (0xf0030000)

Definition at line 252 of file lanai.h.

◆ L3_SLS

#define L3_SLS   (0xf0000000)

Definition at line 248 of file lanai.h.

◆ L3_SLS_CONST

#define L3_SLS_CONST (   x)    ((((x)&0x1f) << 18) | ((x)&0xffff))

Definition at line 358 of file lanai.h.

◆ L3_SLS_HIBITS

#define L3_SLS_HIBITS (   x)    (((x)&0x1f) << 18)

Definition at line 357 of file lanai.h.

◆ L3_SLS_MASK

#define L3_SLS_MASK   (0xf0030000)

Definition at line 250 of file lanai.h.

◆ L3_SLS_OPCODE_MASK

#define L3_SLS_OPCODE_MASK   (0xf0020000)

Definition at line 249 of file lanai.h.

◆ L3_SLS_S

#define L3_SLS_S   (0x00010000)

Definition at line 323 of file lanai.h.

◆ L3_SPLS

#define L3_SPLS   (0xf0030000)

Definition at line 254 of file lanai.h.

◆ L3_SPLS_CONST_MASK

#define L3_SPLS_CONST_MASK   (0x000003ff)

Definition at line 341 of file lanai.h.

◆ L3_SPLS_E

#define L3_SPLS_E   (0x00001000)

Definition at line 327 of file lanai.h.

◆ L3_SPLS_MASK

#define L3_SPLS_MASK   (0xf003fc00)

Definition at line 256 of file lanai.h.

◆ L3_SPLS_MODE

#define L3_SPLS_MODE (   x)    (((x)&0x5) << 12)

Definition at line 363 of file lanai.h.

◆ L3_SPLS_OPCODE_MASK

#define L3_SPLS_OPCODE_MASK   (0xf0038000)

Definition at line 255 of file lanai.h.

◆ L3_SPLS_P

#define L3_SPLS_P   (0x00000800)

Definition at line 328 of file lanai.h.

◆ L3_SPLS_Q

#define L3_SPLS_Q   (0x00000400)

Definition at line 329 of file lanai.h.

◆ L3_SPLS_S

#define L3_SPLS_S   (0x00002000)

Definition at line 326 of file lanai.h.

◆ L3_SPLS_Y

#define L3_SPLS_Y   (0x00004000)

Definition at line 325 of file lanai.h.

◆ L3_SUB

#define L3_SUB   (0x02)

Definition at line 273 of file lanai.h.

◆ L3_SUBB

#define L3_SUBB   (0x03)

Definition at line 274 of file lanai.h.

◆ L3_T

#define L3_T   0

Definition at line 189 of file lanai.h.

◆ L3_UGE

#define L3_UGE   L3_CC

Definition at line 206 of file lanai.h.

◆ L3_UGT

#define L3_UGT   L3_GT

Definition at line 208 of file lanai.h.

◆ L3_ULE

#define L3_ULE   L3_LE

Definition at line 209 of file lanai.h.

◆ L3_ULT

#define L3_ULT   L3_CS

Definition at line 207 of file lanai.h.

◆ L3_UNSIGNED

#define L3_UNSIGNED   1 /* was 4 */

Definition at line 290 of file lanai.h.

◆ L3_UNSIGNED_BYTE

#define L3_UNSIGNED_BYTE   (L3_UNSIGNED | L3_BYTE)

Definition at line 296 of file lanai.h.

◆ L3_UNSIGNED_FULLWORD

#define L3_UNSIGNED_FULLWORD   (L3_UNSIGNED | L3_FULLWORD)

Definition at line 297 of file lanai.h.

◆ L3_UNSIGNED_HALFWORD

#define L3_UNSIGNED_HALFWORD   (L3_UNSIGNED | L3_HALFWORD)

Definition at line 295 of file lanai.h.

◆ L3_USE_SBR

#define L3_USE_SBR

Definition at line 186 of file lanai.h.

◆ L3_USE_SI

#define L3_USE_SI

Definition at line 182 of file lanai.h.

◆ L3_USE_SLI

#define L3_USE_SLI

Definition at line 185 of file lanai.h.

◆ L3_USE_SLS

#define L3_USE_SLS

Definition at line 184 of file lanai.h.

◆ L3_USE_SPLS

#define L3_USE_SPLS

Definition at line 183 of file lanai.h.

◆ L3_VC

#define L3_VC   8

Definition at line 197 of file lanai.h.

◆ L3_VS

#define L3_VS   9

Definition at line 198 of file lanai.h.

◆ L3_XOR

#define L3_XOR   (0x06)

Definition at line 277 of file lanai.h.

◆ lanai_architecture

#define lanai_architecture   bfd_lanai_architecture

Definition at line 73 of file lanai.h.

◆ lanai_opcode

#define lanai_opcode   bfd_lanai_opcode

Definition at line 75 of file lanai.h.

◆ lanai_opcodes

#define lanai_opcodes   bfd_lanai_opcodes

Definition at line 76 of file lanai.h.

◆ NUMOPCODES

#define NUMOPCODES   bfd_lanai_num_opcodes

Definition at line 397 of file lanai.h.

◆ SIGN_EXT

#define SIGN_EXT (   value,
  bits 
)     ((((int)(value)) << ((8 * sizeof(int)) - bits)) >> ((8 * sizeof(int)) - bits))

Definition at line 370 of file lanai.h.

◆ X_C10

#define X_C10 (   i)    ((i)&0x3ff)

Definition at line 389 of file lanai.h.

◆ X_C16

#define X_C16 (   i)    ((i)&0xffff)

Definition at line 390 of file lanai.h.

◆ X_C21

#define X_C21 (   i)    (((i)&0xffff) | (((i)&0x7c0000) >> 2))

Definition at line 391 of file lanai.h.

◆ X_C25

#define X_C25 (   i)    ((i)&0x1fffffc)

Definition at line 392 of file lanai.h.

◆ X_OP1

#define X_OP1 (   i)    (((i) >> 0) & 0x07)

Definition at line 381 of file lanai.h.

◆ X_OP2

#define X_OP2 (   i)    (((i) >> 8) & 0x07)

Definition at line 382 of file lanai.h.

◆ X_RD

#define X_RD (   i)    (((i) >> 23) & 0x1f)

Definition at line 376 of file lanai.h.

◆ X_RI_OP

#define X_RI_OP (   i)    (((i) >> 28) & 0x07)

Definition at line 383 of file lanai.h.

◆ X_RR_OP

#define X_RR_OP (   i)    X_OP2(i)

Definition at line 384 of file lanai.h.

◆ X_RRM_OP

#define X_RRM_OP (   i)    X_OP2(i)

Definition at line 385 of file lanai.h.

◆ X_RRR_OP1

#define X_RRR_OP1 (   i)    X_OP1(i)

Definition at line 386 of file lanai.h.

◆ X_RRR_OP2

#define X_RRR_OP2 (   i)    X_OP2(i)

Definition at line 387 of file lanai.h.

◆ X_RS1

#define X_RS1 (   i)    (((i) >> 18) & 0x1f)

Definition at line 377 of file lanai.h.

◆ X_RS2

#define X_RS2 (   i)    (((i) >> 11) & 0x1f)

Definition at line 378 of file lanai.h.

◆ X_RS3

#define X_RS3 (   i)    (((i) >> 3) & 0x1f)

Definition at line 379 of file lanai.h.

Enumeration Type Documentation

◆ lanai_architecture

Enumerator
v0 
v1 

Definition at line 83 of file lanai.h.

83  {
84  v0 = 0,
85  v1
86 };
@ v0
Definition: lanai.h:84
@ v1
Definition: lanai.h:85

Variable Documentation

◆ architecture_pname

const char* architecture_pname[]
extern

Definition at line 71 of file lanai-opc.c.

◆ bfd_lanai_num_opcodes

const int bfd_lanai_num_opcodes
extern

Definition at line 578 of file lanai-opc.c.

◆ lanai_opcodes

struct lanai_opcode lanai_opcodes[]
extern

Definition at line 71 of file lanai-opc.c.