diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:46:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:46:16 -0700 |
commit | 7cece14acd063dd1c4e8933461d44ec6a5a5517b (patch) | |
tree | a7d2de4acaf64eed207ceab9eb6b2a386ebd7401 /arch/sparc64/kernel/getsetcc.S | |
parent | 95dfec6ae1cb8c03406aac612a5642cbddb676b3 (diff) | |
parent | 8cd0ae3acc0154f3f9dfa1b4a2b7c02c271533f6 (diff) | |
download | talos-op-linux-7cece14acd063dd1c4e8933461d44ec6a5a5517b.tar.gz talos-op-linux-7cece14acd063dd1c4e8933461d44ec6a5a5517b.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: remove duplicated include
sparc: Add kgdb support.
kgdbts: Sparc needs sstep emulation.
sparc32: Kill smp_message_pass() and related code.
sparc64: Kill PIL_RESERVED, unused.
sparc64: Split entry.S up into seperate files.
Diffstat (limited to 'arch/sparc64/kernel/getsetcc.S')
-rw-r--r-- | arch/sparc64/kernel/getsetcc.S | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/getsetcc.S b/arch/sparc64/kernel/getsetcc.S new file mode 100644 index 000000000000..a14d272d2061 --- /dev/null +++ b/arch/sparc64/kernel/getsetcc.S @@ -0,0 +1,24 @@ + .globl getcc + .type getcc,#function +getcc: + ldx [%o0 + PT_V9_TSTATE], %o1 + srlx %o1, 32, %o1 + and %o1, 0xf, %o1 + retl + stx %o1, [%o0 + PT_V9_G1] + .size getcc,.-getcc + + .globl setcc + .type setcc,#function +setcc: + ldx [%o0 + PT_V9_TSTATE], %o1 + ldx [%o0 + PT_V9_G1], %o2 + or %g0, %ulo(TSTATE_ICC), %o3 + sllx %o3, 32, %o3 + andn %o1, %o3, %o1 + sllx %o2, 32, %o2 + and %o2, %o3, %o2 + or %o1, %o2, %o1 + retl + stx %o1, [%o0 + PT_V9_TSTATE] + .size setcc,.-setcc |