Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
head_64.h File Reference
#include <asm/pstate.h>

Go to the source code of this file.

Macros

#define SET_GL(val)   .word 0xa1902000 | val
 
#define GET_GL_GLOBAL(N)   .word 0x81540000 | (N << 25)
 
#define KERNBASE   0x400000
 
#define PTREGS_OFF   (STACK_BIAS + STACKFRAME_SZ)
 
#define __CHEETAH_ID   0x003e0014
 
#define __JALAPENO_ID   0x003e0016
 
#define __SERRANO_ID   0x003e0022
 
#define CHEETAH_MANUF   0x003e
 
#define CHEETAH_IMPL   0x0014 /* Ultra-III */
 
#define CHEETAH_PLUS_IMPL   0x0015 /* Ultra-III+ */
 
#define JALAPENO_IMPL   0x0016 /* Ultra-IIIi */
 
#define JAGUAR_IMPL   0x0018 /* Ultra-IV */
 
#define PANTHER_IMPL   0x0019 /* Ultra-IV+ */
 
#define SERRANO_IMPL   0x0022 /* Ultra-IIIi+ */
 
#define BRANCH_IF_SUN4V(tmp1, label)
 
#define BRANCH_IF_CHEETAH_BASE(tmp1, tmp2, label)
 
#define BRANCH_IF_JALAPENO(tmp1, tmp2, label)
 
#define BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(tmp1, tmp2, label)
 
#define BRANCH_IF_ANY_CHEETAH(tmp1, tmp2, label)
 

Macro Definition Documentation

#define __CHEETAH_ID   0x003e0014

Definition at line 18 of file head_64.h.

#define __JALAPENO_ID   0x003e0016

Definition at line 19 of file head_64.h.

#define __SERRANO_ID   0x003e0022

Definition at line 20 of file head_64.h.

#define BRANCH_IF_ANY_CHEETAH (   tmp1,
  tmp2,
  label 
)
Value:
rdpr %ver, %tmp1; \
srlx %tmp1, (32 + 16), %tmp2; \
cmp %tmp2, CHEETAH_MANUF; \
bne,pt %xcc, 99f; \
sllx %tmp1, 16, %tmp1; \
srlx %tmp1, (32 + 16), %tmp2; \
cmp %tmp2, CHEETAH_IMPL; \
bgeu,pt %xcc, label; \
99: nop;

Definition at line 65 of file head_64.h.

#define BRANCH_IF_CHEETAH_BASE (   tmp1,
  tmp2,
  label 
)
Value:
rdpr %ver, %tmp1; \
sethi %hi(__CHEETAH_ID), %tmp2; \
srlx %tmp1, 32, %tmp1; \
or %tmp2, %lo(__CHEETAH_ID), %tmp2;\
cmp %tmp1, %tmp2; \
be,pn %icc, label; \
nop;

Definition at line 36 of file head_64.h.

#define BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON (   tmp1,
  tmp2,
  label 
)
Value:
rdpr %ver, %tmp1; \
srlx %tmp1, (32 + 16), %tmp2; \
cmp %tmp2, CHEETAH_MANUF; \
bne,pt %xcc, 99f; \
sllx %tmp1, 16, %tmp1; \
srlx %tmp1, (32 + 16), %tmp2; \
cmp %tmp2, CHEETAH_PLUS_IMPL; \
bgeu,pt %xcc, label; \
99: nop;

Definition at line 54 of file head_64.h.

#define BRANCH_IF_JALAPENO (   tmp1,
  tmp2,
  label 
)
Value:
rdpr %ver, %tmp1; \
sethi %hi(__JALAPENO_ID), %tmp2; \
srlx %tmp1, 32, %tmp1; \
or %tmp2, %lo(__JALAPENO_ID), %tmp2;\
cmp %tmp1, %tmp2; \
be,pn %icc, label; \
nop;

Definition at line 45 of file head_64.h.

#define BRANCH_IF_SUN4V (   tmp1,
  label 
)
Value:
sethi %hi(is_sun4v), %tmp1; \
lduw [%tmp1 + %lo(is_sun4v)], %tmp1; \
brnz,pn %tmp1, label; \
nop

Definition at line 30 of file head_64.h.

#define CHEETAH_IMPL   0x0014 /* Ultra-III */

Definition at line 23 of file head_64.h.

#define CHEETAH_MANUF   0x003e

Definition at line 22 of file head_64.h.

#define CHEETAH_PLUS_IMPL   0x0015 /* Ultra-III+ */

Definition at line 24 of file head_64.h.

#define GET_GL_GLOBAL (   N)    .word 0x81540000 | (N << 25)

Definition at line 11 of file head_64.h.

#define JAGUAR_IMPL   0x0018 /* Ultra-IV */

Definition at line 26 of file head_64.h.

#define JALAPENO_IMPL   0x0016 /* Ultra-IIIi */

Definition at line 25 of file head_64.h.

#define KERNBASE   0x400000

Definition at line 14 of file head_64.h.

#define PANTHER_IMPL   0x0019 /* Ultra-IV+ */

Definition at line 27 of file head_64.h.

#define PTREGS_OFF   (STACK_BIAS + STACKFRAME_SZ)

Definition at line 16 of file head_64.h.

#define SERRANO_IMPL   0x0022 /* Ultra-IIIi+ */

Definition at line 28 of file head_64.h.

#define SET_GL (   val)    .word 0xa1902000 | val

Definition at line 7 of file head_64.h.