Rizin
unix-like reverse engineering framework and cli tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Macros Modules Pages
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.