diff options
| author | Charles Forsyth <charles.forsyth@gmail.com> | 2018-12-21 15:12:00 +0000 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2018-12-21 15:12:00 +0000 |
| commit | f092bcd9be21a77f026a7c3227a920437d35b9e5 (patch) | |
| tree | fd953df2a342e9cf9313f23b98d46e927f3da258 /lib9 | |
| parent | 0195c4e25fc394097552c7f5ebf3085ec2d201f5 (diff) | |
| parent | af364d9265f84faf807f5db6b8db6936a92124c6 (diff) | |
Merged in nbuwe/inferno-os/NetBSD/powerpc (pull request #10)
NetBSD/powerpc
Approved-by: Charles Forsyth <charles.forsyth@gmail.com>
Diffstat (limited to 'lib9')
| -rw-r--r-- | lib9/getcallerpc-NetBSD-386.S | 7 | ||||
| -rw-r--r-- | lib9/getcallerpc-NetBSD-power.S | 6 | ||||
| -rw-r--r-- | lib9/setfcr-NetBSD-386.S | 15 | ||||
| -rw-r--r-- | lib9/setfcr-NetBSD-power.S | 33 |
4 files changed, 51 insertions, 10 deletions
diff --git a/lib9/getcallerpc-NetBSD-386.S b/lib9/getcallerpc-NetBSD-386.S index 09148627..08ea057e 100644 --- a/lib9/getcallerpc-NetBSD-386.S +++ b/lib9/getcallerpc-NetBSD-386.S @@ -1,8 +1,7 @@ - .file "getcallerpc-NetBSD-386.S" +#include <machine/asm.h> - .type getcallerpc,@function - .global getcallerpc -getcallerpc: +NENTRY(getcallerpc) movl 4(%esp), %eax movl -4(%eax), %eax ret + END(getcallerpc) diff --git a/lib9/getcallerpc-NetBSD-power.S b/lib9/getcallerpc-NetBSD-power.S new file mode 100644 index 00000000..cacbbc11 --- /dev/null +++ b/lib9/getcallerpc-NetBSD-power.S @@ -0,0 +1,6 @@ +#include <machine/asm.h> + +ENTRY_NOPROFILE(getcallerpc) + mflr %r3 + blr + END(getcallerpc) diff --git a/lib9/setfcr-NetBSD-386.S b/lib9/setfcr-NetBSD-386.S index d981f36a..06a6b78d 100644 --- a/lib9/setfcr-NetBSD-386.S +++ b/lib9/setfcr-NetBSD-386.S @@ -1,18 +1,18 @@ +#include <machine/asm.h> -#define FN(x) .type x,@function; .global x; x #define ENT subl $16, %esp #define RET addl $16, %esp; ret - .file "setfcr-Linux-386.S" -FN(setfcr): +NENTRY(setfcr) ENT xorb $0x3f, %al movl %eax, (%esp) fwait fldcw (%esp) RET + END(setfcr) -FN(getfcr): +NENTRY(getfcr) ENT fwait fstcw (%esp) @@ -20,15 +20,18 @@ FN(getfcr): andl $0xffff, %eax xorb $0x3f, %al RET + END(getfcr) -FN(getfsr): +NENTRY(getfsr) ENT fwait fstsw (%esp) movw (%esp), %ax andl $0xffff, %eax RET + END(getfsr) -FN(setfsr): +NENTRY(setfsr) fclex ret + END(setfsr) diff --git a/lib9/setfcr-NetBSD-power.S b/lib9/setfcr-NetBSD-power.S new file mode 100644 index 00000000..820fb29f --- /dev/null +++ b/lib9/setfcr-NetBSD-power.S @@ -0,0 +1,33 @@ +#include <machine/asm.h> + +ENTRY_NOPROFILE(getfcr) + mffs %f0 + stfd %f0,-16(%r1) + lwz %r3,-12(%r1) + blr + END(getfcr) + +ENTRY_NOPROFILE(getfsr) + mffs %f0 + stfd %f0,-16(%r1) + lwz %r3,-12(%r1) + blr + END(getfsr) + +ENTRY_NOPROFILE(setfsr) + sync + stw %r3,-12(%r1) + lfd %f0,-16(%r1) + mtfsf 0xff, %f0 + isync + blr + END(setfsr) + +ENTRY_NOPROFILE(setfcr) + sync + stw %r3,-12(%r1) + lfd %f0,-16(%r1) + mtfsf 0xff, %f0 + isync + blr + END(setfcr) |
