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 )
}
/*----------------------------------------------------------------------------
| 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'.
| 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 );
float32
float32_div
(
float32
,
float32
STATUS_PARAM
);
float32
float32_rem
(
float32
,
float32
STATUS_PARAM
);
float32
float32_sqrt
(
float32
STATUS_PARAM
);
float32
float32_exp2
(
float32
STATUS_PARAM
);
float32
float32_log2
(
float32
STATUS_PARAM
);
int
float32_eq
(
float32
,
float32
STATUS_PARAM
);
int
float32_le
(
float32
,
float32
STATUS_PARAM
);
...
...
@@ -315,6 +316,7 @@ INLINE int float32_is_zero(float32 a)
#define float32_zero make_float32(0)
#define float32_one make_float32(0x3f800000)
#define float32_ln2 make_float32(0x3f317218)
/*----------------------------------------------------------------------------
| Software IEC/IEEE double-precision conversion routines.
...
...
@@ -386,6 +388,7 @@ INLINE int float64_is_zero(float64 a)
#define float64_zero make_float64(0)
#define float64_one make_float64(0x3ff0000000000000LL)
#define float64_ln2 make_float64(0x3fe62e42fefa39efLL)
#ifdef FLOATX80
...
...
hw/bonito.c
浏览文件 @
c84995c5
...
...
@@ -775,7 +775,6 @@ PCIBus *bonito_init(qemu_irq *pic)
pci_bonito_map_irq
,
pic
,
0x28
,
32
);
pcihost
->
bus
=
b
;
qdev_init_nofail
(
dev
);
pci_bus_set_mem_base
(
pcihost
->
bus
,
0x10000000
);
d
=
pci_create_simple
(
b
,
PCI_DEVFN
(
0
,
0
),
"Bonito"
);
s
=
DO_UPCAST
(
PCIBonitoState
,
dev
,
d
);
...
...
pc-bios/README
浏览文件 @
c84995c5
...
...
@@ -15,7 +15,7 @@
firmware implementation. The goal is to implement a 100% IEEE
1275-1994 (referred to as Open Firmware) compliant firmware.
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
...
...
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,
"-chardev serial,id=id,path=path[,mux=on|off]\n"
#else
"-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
#ifdef CONFIG_BRLAPI
"-chardev braille,id=id[,mux=on|off]\n"
...
...
@@ -1452,10 +1452,14 @@ not take any options.
@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.
@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}
...
...
target-ppc/helper.h
浏览文件 @
c84995c5
...
...
@@ -246,6 +246,7 @@ DEF_HELPER_2(vrefp, void, avr, avr)
DEF_HELPER_2
(
vrsqrtefp
,
void
,
avr
,
avr
)
DEF_HELPER_4
(
vmaddfp
,
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
(
vrfim
,
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)
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
)
{
int
i
;
...
...
target-ppc/translate.c
浏览文件 @
c84995c5
...
...
@@ -6382,6 +6382,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13);
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
);
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
);
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
);
GEN_VXFORM_NOA
(
vexptefp
,
5
,
6
);
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
);
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
);
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
);
...
...
@@ -8696,6 +8697,7 @@ GEN_VXFORM_NOA(vupkhpx, 7, 13),
GEN_VXFORM_NOA
(
vupklpx
,
7
,
15
),
GEN_VXFORM_NOA
(
vrefp
,
5
,
4
),
GEN_VXFORM_NOA
(
vrsqrtefp
,
5
,
5
),
GEN_VXFORM_NOA
(
vexptefp
,
5
,
6
),
GEN_VXFORM_NOA
(
vlogefp
,
5
,
7
),
GEN_VXFORM_NOA
(
vrfim
,
5
,
8
),
GEN_VXFORM_NOA
(
vrfin
,
5
,
9
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录