diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 15:46:40 +0300 |
commit | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch) | |
tree | d8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/ape/lib/9/alpha |
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/ape/lib/9/alpha')
-rwxr-xr-x | sys/src/ape/lib/9/alpha/getcallerpc.s | 4 | ||||
-rwxr-xr-x | sys/src/ape/lib/9/alpha/getfcr.s | 57 |
2 files changed, 61 insertions, 0 deletions
diff --git a/sys/src/ape/lib/9/alpha/getcallerpc.s b/sys/src/ape/lib/9/alpha/getcallerpc.s new file mode 100755 index 000000000..2214561be --- /dev/null +++ b/sys/src/ape/lib/9/alpha/getcallerpc.s @@ -0,0 +1,4 @@ +TEXT getcallerpc(SB), $-8 + MOVL 0(SP), R0 + RET + diff --git a/sys/src/ape/lib/9/alpha/getfcr.s b/sys/src/ape/lib/9/alpha/getfcr.s new file mode 100755 index 000000000..06df5de98 --- /dev/null +++ b/sys/src/ape/lib/9/alpha/getfcr.s @@ -0,0 +1,57 @@ +#define EXCB WORD $0x60000400 /* until 7a/7l catch up */ + +TEXT getfsr(SB), $8 + EXCB + MOVT FPCR, F0 + EXCB + MOVT F0, tmp-8(SP) + MOVL tmp-4(SP), R1 + MOVQ $0x01e00000, R2 + AND R2, R1, R0 + RET + +TEXT setfsr(SB), $8 + MOVQ $0x01e00000, R2 + EXCB + MOVT FPCR, F0 + EXCB + MOVT F0, tmp-8(SP) + MOVL tmp-4(SP), R1 + ANDNOT R2, R1, R3 + AND R2, R0, R4 + OR R3, R4, R5 + MOVL R5, tmp-4(SP) + MOVT tmp-8(SP), F0 + EXCB + MOVT F0, FPCR + EXCB + RET + +TEXT getfcr(SB), $8 + EXCB + MOVT FPCR, F0 + EXCB + MOVT F0, tmp-8(SP) + MOVL tmp-4(SP), R1 + MOVQ $0x700c0000, R2 + AND R2, R1, R0 + XOR R2, R0 + RET + +TEXT setfcr(SB), $8 + MOVQ $0x700c0000, R2 + XOR R2, R0 + EXCB + MOVT FPCR, F0 + EXCB + MOVT F0, tmp-8(SP) + MOVL tmp-4(SP), R1 + ANDNOT R2, R1, R3 + AND R2, R0, R4 + OR R3, R4, R5 + MOVL R5, tmp-4(SP) + MOVT tmp-8(SP), F0 + EXCB + MOVT F0, FPCR + EXCB + RET |