Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
c84995c5
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c84995c5
编写于
7月 15, 2010
作者:
A
Anthony Liguori
浏览文件
操作
浏览文件
下载
差异文件
Merge remote branch 'origin/master' into staging
上级
c7ba56c4
fed61bbe
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
104 addition
and
6 deletion
+104
-6
fpu/softfloat.c
fpu/softfloat.c
+79
-0
fpu/softfloat.h
fpu/softfloat.h
+3
-0
hw/bonito.c
hw/bonito.c
+0
-1
pc-bios/README
pc-bios/README
+1
-1
pc-bios/openbios-ppc
pc-bios/openbios-ppc
+0
-0
pc-bios/openbios-sparc32
pc-bios/openbios-sparc32
+0
-0
pc-bios/openbios-sparc64
pc-bios/openbios-sparc64
+0
-0
qemu-options.hx
qemu-options.hx
+8
-4
target-ppc/helper.h
target-ppc/helper.h
+1
-0
target-ppc/op_helper.c
target-ppc/op_helper.c
+10
-0
target-ppc/translate.c
target-ppc/translate.c
+2
-0
未找到文件。
fpu/softfloat.c
浏览文件 @
c84995c5
...
@@ -2055,6 +2055,85 @@ float32 float32_sqrt( float32 a STATUS_PARAM )
...
@@ -2055,6 +2055,85 @@ float32 float32_sqrt( float32 a STATUS_PARAM )
}
}
/*----------------------------------------------------------------------------
| Returns the binary exponential of the single-precision floating-point value
| `a'. The operation is performed according to the IEC/IEEE Standard for
| Binary Floating-Point Arithmetic.
|
| Uses the following identities:
|
| 1. -------------------------------------------------------------------------
| x x*ln(2)
| 2 = e
|
| 2. -------------------------------------------------------------------------
| 2 3 4 5 n
| x x x x x x x
| e = 1 + --- + --- + --- + --- + --- + ... + --- + ...
| 1! 2! 3! 4! 5! n!
*----------------------------------------------------------------------------*/
static
const
float64
float32_exp2_coefficients
[
15
]
=
{
make_float64
(
0x3ff0000000000000ll
),
/* 1 */
make_float64
(
0x3fe0000000000000ll
),
/* 2 */
make_float64
(
0x3fc5555555555555ll
),
/* 3 */
make_float64
(
0x3fa5555555555555ll
),
/* 4 */
make_float64
(
0x3f81111111111111ll
),
/* 5 */
make_float64
(
0x3f56c16c16c16c17ll
),
/* 6 */
make_float64
(
0x3f2a01a01a01a01all
),
/* 7 */
make_float64
(
0x3efa01a01a01a01all
),
/* 8 */
make_float64
(
0x3ec71de3a556c734ll
),
/* 9 */
make_float64
(
0x3e927e4fb7789f5cll
),
/* 10 */
make_float64
(
0x3e5ae64567f544e4ll
),
/* 11 */
make_float64
(
0x3e21eed8eff8d898ll
),
/* 12 */
make_float64
(
0x3de6124613a86d09ll
),
/* 13 */
make_float64
(
0x3da93974a8c07c9dll
),
/* 14 */
make_float64
(
0x3d6ae7f3e733b81fll
),
/* 15 */
};
float32
float32_exp2
(
float32
a
STATUS_PARAM
)
{
flag
aSign
;
int16
aExp
;
bits32
aSig
;
float64
r
,
x
,
xn
;
int
i
;
aSig
=
extractFloat32Frac
(
a
);
aExp
=
extractFloat32Exp
(
a
);
aSign
=
extractFloat32Sign
(
a
);
if
(
aExp
==
0xFF
)
{
if
(
aSig
)
return
propagateFloat32NaN
(
a
,
float32_zero
STATUS_VAR
);
return
(
aSign
)
?
float32_zero
:
a
;
}
if
(
aExp
==
0
)
{
if
(
aSig
==
0
)
return
float32_one
;
}
float_raise
(
float_flag_inexact
STATUS_VAR
);
/* ******************************* */
/* using float64 for approximation */
/* ******************************* */
x
=
float32_to_float64
(
a
STATUS_VAR
);
x
=
float64_mul
(
x
,
float64_ln2
STATUS_VAR
);
xn
=
x
;
r
=
float64_one
;
for
(
i
=
0
;
i
<
15
;
i
++
)
{
float64
f
;
f
=
float64_mul
(
xn
,
float32_exp2_coefficients
[
i
]
STATUS_VAR
);
r
=
float64_add
(
r
,
f
STATUS_VAR
);
xn
=
float64_mul
(
xn
,
x
STATUS_VAR
);
}
return
float64_to_float32
(
r
,
status
);
}
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Returns the binary log of the single-precision floating-point value `a'.
| Returns the binary log of the single-precision floating-point value `a'.
| The operation is performed according to the IEC/IEEE Standard for Binary
| The operation is performed according to the IEC/IEEE Standard for Binary
...
...
fpu/softfloat.h
浏览文件 @
c84995c5
...
@@ -275,6 +275,7 @@ float32 float32_mul( float32, float32 STATUS_PARAM );
...
@@ -275,6 +275,7 @@ float32 float32_mul( float32, float32 STATUS_PARAM );
float32
float32_div
(
float32
,
float32
STATUS_PARAM
);
float32
float32_div
(
float32
,
float32
STATUS_PARAM
);
float32
float32_rem
(
float32
,
float32
STATUS_PARAM
);
float32
float32_rem
(
float32
,
float32
STATUS_PARAM
);
float32
float32_sqrt
(
float32
STATUS_PARAM
);
float32
float32_sqrt
(
float32
STATUS_PARAM
);
float32
float32_exp2
(
float32
STATUS_PARAM
);
float32
float32_log2
(
float32
STATUS_PARAM
);
float32
float32_log2
(
float32
STATUS_PARAM
);
int
float32_eq
(
float32
,
float32
STATUS_PARAM
);
int
float32_eq
(
float32
,
float32
STATUS_PARAM
);
int
float32_le
(
float32
,
float32
STATUS_PARAM
);
int
float32_le
(
float32
,
float32
STATUS_PARAM
);
...
@@ -315,6 +316,7 @@ INLINE int float32_is_zero(float32 a)
...
@@ -315,6 +316,7 @@ INLINE int float32_is_zero(float32 a)
#define float32_zero make_float32(0)
#define float32_zero make_float32(0)
#define float32_one make_float32(0x3f800000)
#define float32_one make_float32(0x3f800000)
#define float32_ln2 make_float32(0x3f317218)
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Software IEC/IEEE double-precision conversion routines.
| Software IEC/IEEE double-precision conversion routines.
...
@@ -386,6 +388,7 @@ INLINE int float64_is_zero(float64 a)
...
@@ -386,6 +388,7 @@ INLINE int float64_is_zero(float64 a)
#define float64_zero make_float64(0)
#define float64_zero make_float64(0)
#define float64_one make_float64(0x3ff0000000000000LL)
#define float64_one make_float64(0x3ff0000000000000LL)
#define float64_ln2 make_float64(0x3fe62e42fefa39efLL)
#ifdef FLOATX80
#ifdef FLOATX80
...
...
hw/bonito.c
浏览文件 @
c84995c5
...
@@ -775,7 +775,6 @@ PCIBus *bonito_init(qemu_irq *pic)
...
@@ -775,7 +775,6 @@ PCIBus *bonito_init(qemu_irq *pic)
pci_bonito_map_irq
,
pic
,
0x28
,
32
);
pci_bonito_map_irq
,
pic
,
0x28
,
32
);
pcihost
->
bus
=
b
;
pcihost
->
bus
=
b
;
qdev_init_nofail
(
dev
);
qdev_init_nofail
(
dev
);
pci_bus_set_mem_base
(
pcihost
->
bus
,
0x10000000
);
d
=
pci_create_simple
(
b
,
PCI_DEVFN
(
0
,
0
),
"Bonito"
);
d
=
pci_create_simple
(
b
,
PCI_DEVFN
(
0
,
0
),
"Bonito"
);
s
=
DO_UPCAST
(
PCIBonitoState
,
dev
,
d
);
s
=
DO_UPCAST
(
PCIBonitoState
,
dev
,
d
);
...
...
pc-bios/README
浏览文件 @
c84995c5
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
firmware implementation. The goal is to implement a 100% IEEE
firmware implementation. The goal is to implement a 100% IEEE
1275-1994 (referred to as Open Firmware) compliant firmware.
1275-1994 (referred to as Open Firmware) compliant firmware.
The included image for PowerPC (for 32 and 64 bit PPC CPUs), Sparc32
The included image for PowerPC (for 32 and 64 bit PPC CPUs), Sparc32
and Sparc64 are built from OpenBIOS SVN revision
795
.
and Sparc64 are built from OpenBIOS SVN revision
821
.
- The PXE roms come from Rom-o-Matic gPXE 0.9.9 with BANNER_TIMEOUT=0
- The PXE roms come from Rom-o-Matic gPXE 0.9.9 with BANNER_TIMEOUT=0
...
...
pc-bios/openbios-ppc
浏览文件 @
c84995c5
无法预览此类型文件
pc-bios/openbios-sparc32
浏览文件 @
c84995c5
无法预览此类型文件
pc-bios/openbios-sparc64
浏览文件 @
c84995c5
无法预览此类型文件
qemu-options.hx
浏览文件 @
c84995c5
...
@@ -1271,7 +1271,7 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
...
@@ -1271,7 +1271,7 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
"-chardev serial,id=id,path=path[,mux=on|off]\n"
"-chardev serial,id=id,path=path[,mux=on|off]\n"
#else
#else
"-chardev pty,id=id[,mux=on|off]\n"
"-chardev pty,id=id[,mux=on|off]\n"
"-chardev stdio,id=id[,mux=on|off]\n"
"-chardev stdio,id=id[,mux=on|off]
[,signal=on|off]
\n"
#endif
#endif
#ifdef CONFIG_BRLAPI
#ifdef CONFIG_BRLAPI
"-chardev braille,id=id[,mux=on|off]\n"
"-chardev braille,id=id[,mux=on|off]\n"
...
@@ -1452,10 +1452,14 @@ not take any options.
...
@@ -1452,10 +1452,14 @@ not take any options.
@option{pty} is not available on Windows hosts.
@option{pty} is not available on Windows hosts.
@item -chardev stdio ,id=@var{id}
@item -chardev stdio ,id=@var{id}
[,signal=on|off]
Connect to standard input and standard output of the qemu process.
Connect to standard input and standard output of the qemu process.
@option{stdio} does not take any options. @option{stdio} is not available on
Windows hosts.
@option{signal} controls if signals are enabled on the terminal, that includes
exiting QEMU with the key sequence @key{Control-c}. This option is enabled by
default, use @option{signal=off} to disable it.
@option{stdio} is not available on Windows hosts.
@item -chardev braille ,id=@var{id}
@item -chardev braille ,id=@var{id}
...
...
target-ppc/helper.h
浏览文件 @
c84995c5
...
@@ -246,6 +246,7 @@ DEF_HELPER_2(vrefp, void, avr, avr)
...
@@ -246,6 +246,7 @@ DEF_HELPER_2(vrefp, void, avr, avr)
DEF_HELPER_2
(
vrsqrtefp
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vrsqrtefp
,
void
,
avr
,
avr
)
DEF_HELPER_4
(
vmaddfp
,
void
,
avr
,
avr
,
avr
,
avr
)
DEF_HELPER_4
(
vmaddfp
,
void
,
avr
,
avr
,
avr
,
avr
)
DEF_HELPER_4
(
vnmsubfp
,
void
,
avr
,
avr
,
avr
,
avr
)
DEF_HELPER_4
(
vnmsubfp
,
void
,
avr
,
avr
,
avr
,
avr
)
DEF_HELPER_2
(
vexptefp
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vlogefp
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vlogefp
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vrfim
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vrfim
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vrfin
,
void
,
avr
,
avr
)
DEF_HELPER_2
(
vrfin
,
void
,
avr
,
avr
)
...
...
target-ppc/op_helper.c
浏览文件 @
c84995c5
...
@@ -2713,6 +2713,16 @@ void helper_vsel (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
...
@@ -2713,6 +2713,16 @@ void helper_vsel (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
r
->
u64
[
1
]
=
(
a
->
u64
[
1
]
&
~
c
->
u64
[
1
])
|
(
b
->
u64
[
1
]
&
c
->
u64
[
1
]);
r
->
u64
[
1
]
=
(
a
->
u64
[
1
]
&
~
c
->
u64
[
1
])
|
(
b
->
u64
[
1
]
&
c
->
u64
[
1
]);
}
}
void
helper_vexptefp
(
ppc_avr_t
*
r
,
ppc_avr_t
*
b
)
{
int
i
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
r
->
f
);
i
++
)
{
HANDLE_NAN1
(
r
->
f
[
i
],
b
->
f
[
i
])
{
r
->
f
[
i
]
=
float32_exp2
(
b
->
f
[
i
],
&
env
->
vec_status
);
}
}
}
void
helper_vlogefp
(
ppc_avr_t
*
r
,
ppc_avr_t
*
b
)
void
helper_vlogefp
(
ppc_avr_t
*
r
,
ppc_avr_t
*
b
)
{
{
int
i
;
int
i
;
...
...
target-ppc/translate.c
浏览文件 @
c84995c5
...
@@ -6382,6 +6382,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13);
...
@@ -6382,6 +6382,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13);
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
);
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
);
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
);
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
);
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
);
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
);
GEN_VXFORM_NOA
(
vexptefp
,
5
,
6
);
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
);
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
);
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
);
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
);
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
);
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
);
...
@@ -8696,6 +8697,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13),
...
@@ -8696,6 +8697,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13),
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
),
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
),
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
),
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
),
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
),
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
),
GEN_VXFORM_NOA
(
vexptefp
,
5
,
6
),
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
),
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
),
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
),
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
),
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
),
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录