summaryrefslogtreecommitdiff
path: root/sys/alpha/include
diff options
context:
space:
mode:
authorDoug Rabson <dfr@FreeBSD.org>1998-12-04 10:52:48 +0000
committerDoug Rabson <dfr@FreeBSD.org>1998-12-04 10:52:48 +0000
commit5b38fe900d505bcfed3afc428cff5710109aed29 (patch)
treeeccaf7c298762ce1a0329739c93dced5dde58155 /sys/alpha/include
parent60159a06334eb8ec259c5febc12797d3ed1ba4af (diff)
Notes
Diffstat (limited to 'sys/alpha/include')
-rw-r--r--sys/alpha/include/fpu.h114
-rw-r--r--sys/alpha/include/inst.h462
-rw-r--r--sys/alpha/include/pcb.h3
3 files changed, 578 insertions, 1 deletions
diff --git a/sys/alpha/include/fpu.h b/sys/alpha/include/fpu.h
new file mode 100644
index 000000000000..d4a767e66ebd
--- /dev/null
+++ b/sys/alpha/include/fpu.h
@@ -0,0 +1,114 @@
+/*-
+ * Copyright (c) 1998 Doug Rabson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#ifndef _MACHINE_FPU_H_
+#define _MACHINE_FPU_H_
+
+/*
+ * Floating point control register bits.
+ *
+ * From Alpha AXP Architecture Reference Manual, Instruction
+ * Descriptions (I) PP 4-69.
+ */
+
+#define FPCR_INVD (1LL << 49) /* Invalid Operation DIsable */
+#define FPCR_DZED (1LL << 50) /* Division by Zero Disable */
+#define FPCR_OVFD (1LL << 51) /* Overflow Disable */
+#define FPCR_INV (1LL << 52) /* Invalid Operation */
+#define FPCR_DZE (1LL << 53) /* Division by Zero */
+#define FPCR_OVF (1LL << 54) /* Overflow */
+#define FPCR_UNF (1LL << 55) /* Underflow */
+#define FPCR_INE (1LL << 56) /* Inexact Result */
+#define FPCR_IOV (1LL << 57) /* Integer Overflow */
+#define FPCR_DYN_CHOPPED (0LL << 58) /* Chopped rounding mode */
+#define FPCR_DYN_MINUS (1LL << 58) /* Minus infinity */
+#define FPCR_DYN_NORMAL (2LL << 58) /* Normal rounding */
+#define FPCR_DYN_PLUS (3LL << 58) /* Plus infinity */
+#define FPCR_DYN_MASK (3LL << 58) /* Rounding mode mask */
+#define FPCR_DYN_SHIFT 58
+#define FPCR_UNDZ (1LL << 60) /* Underflow to Zero */
+#define FPCR_UNFD (1LL << 61) /* Underflow Disable */
+#define FPCR_INED (1LL << 62) /* Inexact Disable */
+#define FPCR_SUM (1LL << 63) /* Summary Bit */
+#define FPCR_MASK (~0LL << 49)
+
+/*
+ * Exception summary bits.
+ *
+ * From Alpha AXP Architecture Reference Manual, DEC OSF/1 Exceptions
+ * and Interrupts (II-B) PP 5-5.
+ */
+
+#define EXCSUM_SWC (1LL << 0) /* Software completion */
+#define EXCSUM_INV (1LL << 1) /* Invalid operation */
+#define EXCSUM_DZE (1LL << 2) /* Division by zero */
+#define EXCSUM_OVF (1LL << 3) /* Overflow */
+#define EXCSUM_UNF (1LL << 4) /* Underflow */
+#define EXCSUM_INE (1LL << 5) /* Inexact result */
+#define EXCSUM_IOV (1LL << 6) /* Integer overflow */
+
+/*
+ * Definitions for IEEE trap enables. These are implemented in
+ * software and should be compatible with OSF/1 and Linux.
+ */
+
+/* read/write flags */
+#define IEEE_TRAP_ENABLE_INV (1LL << 1) /* Invalid operation */
+#define IEEE_TRAP_ENABLE_DZE (1LL << 2) /* Division by zero */
+#define IEEE_TRAP_ENABLE_OVF (1LL << 3) /* Overflow */
+#define IEEE_TRAP_ENABLE_UNF (1LL << 4) /* Underflow */
+#define IEEE_TRAP_ENABLE_INE (1LL << 5) /* Inexact result */
+#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV \
+ | IEEE_TRAP_ENABLE_DZE \
+ | IEEE_TRAP_ENABLE_OVF \
+ | IEEE_TRAP_ENABLE_UNF \
+ | IEEE_TRAP_ENABLE_INE)
+
+/* read only flags */
+#define IEEE_STATUS_INV (1LL << 17) /* Invalid operation */
+#define IEEE_STATUS_DZE (1LL << 18) /* Division by zero */
+#define IEEE_STATUS_OVF (1LL << 19) /* Overflow */
+#define IEEE_STATUS_UNF (1LL << 20) /* Underflow */
+#define IEEE_STATUS_INE (1LL << 21) /* Inexact result */
+#define IEEE_STATUS_MASK (IEEE_STATUS_INV \
+ | IEEE_STATUS_DZE \
+ | IEEE_STATUS_OVF \
+ | IEEE_STATUS_UNF \
+ | IEEE_STATUS_INE)
+#define IEEE_STATUS_TO_EXCSUM_SHIFT 16 /* convert to excsum */
+#define IEEE_STATUS_TO_FPCR_SHIFT 35 /* convert to fpcr */
+
+#define IEEE_INHERIT (1LL << 63) /* inherit on fork */
+
+#ifdef KERNEL
+
+extern int fp_software_completion(u_int64_t regmask, struct proc *p);
+
+#endif
+
+#endif /* ! _MACHINE_FPU_H_ */
diff --git a/sys/alpha/include/inst.h b/sys/alpha/include/inst.h
new file mode 100644
index 000000000000..27011848b175
--- /dev/null
+++ b/sys/alpha/include/inst.h
@@ -0,0 +1,462 @@
+/*-
+ * Copyright (c) 1998 Doug Rabson
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#ifndef _MACHINE_INST_H_
+#define _MACHINE_INST_H_
+
+union alpha_instruction {
+ u_int32_t word;
+ struct {
+ u_int32_t argument : 26;
+ u_int32_t opcode : 6;
+#define op_call_pal 0x00
+#define op_lda 0x08
+#define op_ldah 0x09
+#define op_ldbu 0x0a
+#define op_unop 0x0b
+#define op_ldq_u 0x0b
+#define op_ldwu 0x0c
+#define op_stw 0x0d
+#define op_stb 0x0e
+#define op_stq_u 0x0f
+#define op_inta 0x10
+#define inta_addl 0x00
+#define inta_s4addl 0x02
+#define inta_subl 0x09
+#define inta_s4subl 0x0b
+#define inta_cmpbge 0x0f
+#define inta_s8addl 0x12
+#define inta_s8subl 0x1b
+#define inta_cmpult 0x1d
+#define inta_addq 0x20
+#define inta_s4addq 0x22
+#define inta_subq 0x29
+#define inta_s4subq 0x2b
+#define inta_cmpeq 0x2d
+#define inta_s8addq 0x32
+#define inta_s8subq 0x3b
+#define inta_cmpule 0x3d
+#define inta_addlv 0x40
+#define inta_sublv 0x49
+#define inta_cmplt 0x4d
+#define inta_addqv 0x60
+#define inta_subqv 0x69
+#define inta_cmple 0x6d
+#define op_intl 0x11
+#define intl_and 0x00
+#define intl_andnot 0x08
+#define intl_bic 0x08
+#define intl_cmovlbs 0x14
+#define intl_cmovlbc 0x16
+#define intl_or 0x20
+#define intl_bis 0x20
+#define intl_cmoveq 0x24
+#define intl_cmovne 0x26
+#define intl_ornot 0x28
+#define intl_xor 0x40
+#define intl_cmovlt 0x44
+#define intl_cmovge 0x46
+#define intl_eqv 0x48
+#define intl_amask 0x61
+#define intl_cmovle 0x64
+#define intl_cmovgt 0x66
+#define intl_implver 0x6c
+#define op_ints 0x12
+#define ints_mskbl 0x02
+#define ints_extbl 0x06
+#define ints_insbl 0x0b
+#define ints_mskwl 0x12
+#define ints_extwl 0x16
+#define ints_inswl 0x1b
+#define ints_mskll 0x22
+#define ints_extll 0x26
+#define ints_insll 0x2b
+#define ints_zap 0x30
+#define ints_zapnot 0x31
+#define ints_mskql 0x32
+#define ints_srl 0x34
+#define ints_extql 0x36
+#define ints_sll 0x39
+#define ints_insql 0x3b
+#define ints_sra 0x3c
+#define ints_mskwh 0x52
+#define ints_inswh 0x57
+#define ints_extwh 0x5a
+#define ints_msklh 0x62
+#define ints_inslh 0x67
+#define ints_extlh 0x6a
+#define ints_mskqh 0x72
+#define ints_insqh 0x77
+#define ints_extqh 0x7a
+#define op_intm 0x13
+#define intm_mull 0x00
+#define intm_mulq 0x20
+#define intm_umulh 0x30
+#define intm_mullv 0x40
+#define intm_mulqv 0x60
+#define op_opc14 0x14
+#define op_fltv 0x15
+#define op_flti 0x16
+#define flti_addsc 0x000
+#define flti_subsc 0x001
+#define flti_mulsc 0x002
+#define flti_divsc 0x003
+#define flti_addtc 0x020
+#define flti_subtc 0x021
+#define flti_multc 0x022
+#define flti_divtc 0x023
+#define flti_cvttsc 0x02c
+#define flti_cvttqc 0x02f
+#define flti_cvtqsc 0x03c
+#define flti_cvtqtc 0x03e
+
+#define flti_addsm 0x040
+#define flti_subsm 0x041
+#define flti_mulsm 0x042
+#define flti_divsm 0x043
+#define flti_addtm 0x060
+#define flti_subtm 0x061
+#define flti_multm 0x062
+#define flti_divtm 0x063
+#define flti_cvttsm 0x06c
+#define flti_cvttqm 0x06f
+#define flti_cvtqsm 0x07c
+#define flti_cvtqtm 0x07e
+
+#define flti_adds 0x080
+#define flti_subs 0x081
+#define flti_muls 0x082
+#define flti_divs 0x083
+
+#define flti_addt 0x0a0
+#define flti_subt 0x0a1
+#define flti_mult 0x0a2
+#define flti_divt 0x0a3
+#define flti_cmptun 0x0a4
+#define flti_cmpteq 0x0a5
+#define flti_cmptlt 0x0a6
+#define flti_cmptle 0x0a7
+#define flti_cvtts 0x0ac
+#define flti_cvttq 0x0af
+#define flti_cvtqs 0x0bc
+#define flti_cvtqt 0x0be
+
+#define flti_addsd 0x0c0
+#define flti_subsd 0x0c1
+#define flti_mulsd 0x0c2
+#define flti_divsd 0x0c3
+#define flti_addtd 0x0e0
+#define flti_subtd 0x0e1
+#define flti_multd 0x0e2
+#define flti_divtd 0x0e3
+#define flti_cvttsd 0x0ec
+#define flti_cvttqd 0x0ef
+#define flti_cvtqsd 0x0fc
+#define flti_cvtqtd 0x0fe
+
+#define flti_addsuc 0x100
+#define flti_subsuc 0x101
+#define flti_mulsuc 0x102
+#define flti_divsuc 0x103
+#define flti_addtuc 0x120
+#define flti_subtuc 0x121
+#define flti_multuc 0x122
+#define flti_divtuc 0x123
+#define flti_cvttsuc 0x12c
+#define flti_cvttqvc 0x12f
+
+#define flti_addsum 0x140
+#define flti_subsum 0x141
+#define flti_mulsum 0x142
+#define flti_divsum 0x143
+#define flti_addtum 0x160
+#define flti_subtum 0x161
+#define flti_multum 0x162
+#define flti_divtum 0x163
+#define flti_cvttsum 0x16c
+#define flti_cvttqvm 0x16f
+
+#define flti_addsu 0x180
+#define flti_subsu 0x181
+#define flti_mulsu 0x182
+#define flti_divsu 0x183
+#define flti_addtu 0x1a0
+#define flti_subtu 0x1a1
+#define flti_multu 0x1a2
+#define flti_divtu 0x1a3
+#define flti_cvttsu 0x1ac
+#define flti_cvttqv 0x1af
+
+#define flti_addsud 0x1c0
+#define flti_subsud 0x1c1
+#define flti_mulsud 0x1c2
+#define flti_divsud 0x1c3
+#define flti_addtud 0x1e0
+#define flti_subtud 0x1e1
+#define flti_multud 0x1e2
+#define flti_divtud 0x1e3
+#define flti_cvttsud 0x1ec
+#define flti_cvttqvd 0x1ef
+
+#define flti_cvtst 0x2ac
+
+#define flti_addssuc 0x500
+#define flti_subssuc 0x501
+#define flti_mulssuc 0x502
+#define flti_divssuc 0x503
+#define flti_addtsuc 0x520
+#define flti_subtsuc 0x521
+#define flti_multsuc 0x522
+#define flti_divtsuc 0x523
+#define flti_cvttssuc 0x52c
+#define flti_cvttqsvc 0x52f
+
+#define flti_addssum 0x540
+#define flti_subssum 0x541
+#define flti_mulssum 0x542
+#define flti_divssum 0x543
+#define flti_addtsum 0x560
+#define flti_subtsum 0x561
+#define flti_multsum 0x562
+#define flti_divtsum 0x563
+#define flti_cvttssum 0x56c
+#define flti_cvttqsvm 0x56f
+
+#define flti_addssu 0x580
+#define flti_subssu 0x581
+#define flti_mulssu 0x582
+#define flti_divssu 0x583
+#define flti_addtsu 0x5a0
+#define flti_subtsu 0x5a1
+#define flti_multsu 0x5a2
+#define flti_divtsu 0x5a3
+#define flti_cmptunsu 0x5a4
+#define flti_cmpteqsu 0x5a5
+#define flti_cmptltsu 0x5a6
+#define flti_cmptlesu 0x5a7
+#define flti_cvttssu 0x5ac
+#define flti_cvttqsv 0x5af
+
+#define flti_addssud 0x5c0
+#define flti_subssud 0x5c1
+#define flti_mulssud 0x5c2
+#define flti_divssud 0x5c3
+#define flti_addtsud 0x5e0
+#define flti_subtsud 0x5e1
+#define flti_multsud 0x5e2
+#define flti_divtsud 0x5e3
+#define flti_cvttssud 0x5ec
+#define flti_cvttqsvd 0x5ef
+
+#define flti_cvtsts 0x6ac
+
+#define flti_addssuic 0x700
+#define flti_subssuic 0x701
+#define flti_mulssuic 0x702
+#define flti_divssuic 0x703
+#define flti_addtsuic 0x720
+#define flti_subtsuic 0x721
+#define flti_multsuic 0x722
+#define flti_divtsuic 0x723
+#define flti_cvttssuic 0x72c
+#define flti_cvttqsvic 0x72f
+#define flti_cvtqssuic 0x73c
+#define flti_cvtqtsuic 0x73e
+
+#define flti_addssuim 0x740
+#define flti_subssuim 0x741
+#define flti_mulssuim 0x742
+#define flti_divssuim 0x743
+#define flti_addtsuim 0x760
+#define flti_subtsuim 0x761
+#define flti_multsuim 0x762
+#define flti_divtsuim 0x763
+#define flti_cvttssuim 0x76c
+#define flti_cvttqsvim 0x76f
+#define flti_cvtqssuim 0x77c
+#define flti_cvtqtsuim 0x77e
+
+#define flti_addssui 0x780
+#define flti_subssui 0x781
+#define flti_mulssui 0x782
+#define flti_divssui 0x783
+#define flti_addtsui 0x7a0
+#define flti_subtsui 0x7a1
+#define flti_multsui 0x7a2
+#define flti_divtsui 0x7a3
+#define flti_cmptunsui 0x7a4
+#define flti_cmpteqsui 0x7a5
+#define flti_cmptltsui 0x7a6
+#define flti_cmptlesui 0x7a7
+#define flti_cvttssui 0x7ac
+#define flti_cvttqsvi 0x7af
+#define flti_cvtqssui 0x7bc
+#define flti_cvtqtsui 0x7bc
+
+#define flti_addssuid 0x7c0
+#define flti_subssuid 0x7c1
+#define flti_mulssuid 0x7c2
+#define flti_divssuid 0x7c3
+#define flti_addtsuid 0x7e0
+#define flti_subtsuid 0x7e1
+#define flti_multsuid 0x7e2
+#define flti_divtsuid 0x7e3
+#define flti_cvttssuid 0x7ec
+#define flti_cvttqsvid 0x7ef
+#define flti_cvtqssuid 0x7fc
+#define flti_cvtqtsuid 0x7fc
+
+#define op_fltl 0x17
+#define fltl_cvtlq 0x010
+#define fltl_cpys 0x020
+#define fltl_cpysn 0x021
+#define fltl_cpyse 0x022
+#define fltl_mt_fpcr 0x024
+#define fltl_mf_fpcr 0x025
+#define fltl_fcmoveq 0x02a
+#define fltl_fcmovne 0x02b
+#define fltl_fcmovlt 0x02c
+#define fltl_fcmovge 0x02d
+#define fltl_fcmovle 0x02e
+#define fltl_fcmovgt 0x02f
+#define fltl_cvtql 0x030
+#define fltl_cvtqlv 0x130
+#define fltl_cvtqlsv 0x530
+
+#define op_misc 0x18
+#define misc_trapb 0x0000
+#define misc_excb 0x0400
+#define misc_mb 0x4000
+#define misc_wmb 0x4400
+#define misc_fetch 0x8000
+#define misc_fetch_m 0xa000
+#define misc_rpcc 0xc000
+#define misc_rc 0xe000
+#define misc_ecb 0xe800
+#define misc_rs 0xf000
+#define misc_wh64 0xf800
+
+#define op_pal19 0x19
+#define op_jsr 0x1a
+#define op_pal1b 0x1b
+#define op_pal1c 0x1c
+#define op_pal1d 0x1d
+#define op_pal1e 0x1e
+#define op_pal1f 0x1f
+#define op_ldf 0x20
+#define op_ldg 0x21
+#define op_lds 0x22
+#define op_ldt 0x23
+#define op_stf 0x24
+#define op_stg 0x25
+#define op_sts 0x26
+#define op_stt 0x27
+#define op_ldl 0x28
+#define op_ldq 0x29
+#define op_ldl_l 0x2a
+#define op_ldq_l 0x2b
+#define op_stl 0x2c
+#define op_stq 0x2d
+#define op_stl_c 0x2e
+#define op_stq_c 0x2f
+#define op_br 0x30
+#define op_fbeq 0x31
+#define op_fblt 0x32
+#define op_fble 0x33
+#define op_bsr 0x34
+#define op_fbne 0x35
+#define op_fbge 0x36
+#define op_fbgt 0x37
+#define op_blbc 0x38
+#define op_beq 0x39
+#define op_blt 0x3a
+#define op_ble 0x3b
+#define op_blbs 0x3c
+#define op_bne 0x3d
+#define op_bge 0x3e
+#define op_bgt 0x3f
+ } common;
+ struct {
+ u_int32_t function : 16;
+ u_int32_t rb : 5;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } memory_format;
+ struct {
+ u_int32_t hint : 14;
+ u_int32_t function : 2;
+#define jsr_jmp 0
+#define jsr_jsr 1
+#define jsr_ret 2
+#define jsr_jsr_coroutine 3
+ u_int32_t rb : 5;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } j_format;
+ struct {
+ int32_t memory_displacement : 16;
+ u_int32_t rb : 5;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } m_format;
+ struct {
+ u_int32_t rc : 5;
+ u_int32_t function : 7;
+ u_int32_t form : 1;
+ u_int32_t sbz : 3;
+ u_int32_t rb : 5;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } o_format;
+ struct {
+ u_int32_t rc : 5;
+ u_int32_t function : 7;
+ u_int32_t form : 1;
+ u_int32_t literal : 8;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } l_format;
+ struct {
+ u_int32_t fc : 5;
+ u_int32_t function : 11;
+ u_int32_t fb : 5;
+ u_int32_t fa : 5;
+ u_int32_t opcode : 6;
+ } f_format;
+ struct {
+ u_int32_t function : 26;
+ u_int32_t opcode : 6;
+ } pal_format;
+ struct {
+ int32_t branch_displacement : 21;
+ u_int32_t ra : 5;
+ u_int32_t opcode : 6;
+ } b_format;
+};
+
+#endif /* _MACHINE_INST_H_ */
diff --git a/sys/alpha/include/pcb.h b/sys/alpha/include/pcb.h
index 445617ea71dc..a6d4a18bde20 100644
--- a/sys/alpha/include/pcb.h
+++ b/sys/alpha/include/pcb.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pcb.h,v 1.1.1.1 1998/03/09 05:43:16 jb Exp $ */
/* From: NetBSD: pcb.h,v 1.6 1997/04/06 08:47:33 cgd Exp */
/*
@@ -50,6 +50,7 @@ struct pcb {
struct alpha_pcb pcb_hw; /* PALcode defined */
unsigned long pcb_context[9]; /* s[0-6], ra, ps [SW] */
struct fpreg pcb_fp; /* FP registers [SW] */
+ u_int64_t pcb_fp_control; /* IEEE control word [SW] */
unsigned long pcb_onfault; /* for copy faults [SW] */
unsigned long pcb_accessaddr; /* for [fs]uswintr [SW] */
};