~ubuntu-branches/ubuntu/vivid/qemu/vivid

« back to all changes in this revision

Viewing changes to debian/patches/ubuntu/arm64/0122-target-arm-Move-arm_rmode_to_sf-to-a-shared-location.patch

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2014-02-25 22:31:43 UTC
  • mfrom: (1.8.5)
  • Revision ID: package-import@ubuntu.com-20140225223143-odhqxfc60wxrjl15
Tags: 2.0.0~rc1+dfsg-0ubuntu1
* Merge 2.0.0-rc1
* debian/rules: consolidate ppc filter entries.
* Move qemu-system-arch64 into qemu-system-arm
* debian/patches/define-trusty-machine-type.patch: define a trusty machine
  type, currently the same as pc-i440fx-2.0, to put is in a better position
  to enable live migrations from trusty onward.  (LP: #1294823)
* debian/control: build-dep on libfdt >= 1.4.0  (LP: #1295072)
* Merge latest upstream git to commit dc9528f
* Debian/rules:
  - remove -enable-uname-release=2.6.32
  - don't make the aarch64 target Ubuntu-specific.
* Remove patches which are now upstream:
  - fix-smb-security-share.patch
  - slirp-smb-redirect-port-445-too.patch 
  - linux-user-Implement-sendmmsg-syscall.patch (better version is upstream)
  - signal-added-a-wrapper-for-sigprocmask-function.patch
  - ubuntu/signal-sigsegv-protection-on-do_sigprocmask.patch
  - ubuntu/Don-t-block-SIGSEGV-at-more-places.patch
  - ubuntu/ppc-force-cpu-threads-count-to-be-power-of-2.patch
* add link for /usr/share/qemu/bios-256k.bin
* Remove all linaro patches.
* Remove all arm64/ patches.  Many but not all are upstream.
* Remove CVE-2013-4377.patch which is upstream.
* debian/control-in: don't make qemu-system-aarch64 ubuntu-specific

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
From 7fb5e584a4df607a32756ccccd0e97c9631a1670 Mon Sep 17 00:00:00 2001
2
 
From: Will Newton <will.newton@linaro.org>
3
 
Date: Fri, 31 Jan 2014 14:47:33 +0000
4
 
Subject: [PATCH 122/158] target-arm: Move arm_rmode_to_sf to a shared
5
 
 location.
6
 
 
7
 
This function will be needed for AArch32 ARMv8 support, so move it to
8
 
helper.c where it can be used by both targets. Also moves the code out
9
 
of line, but as it is quite a large function I don't believe this
10
 
should be a significant performance impact.
11
 
 
12
 
Signed-off-by: Will Newton <will.newton@linaro.org>
13
 
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
14
 
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
 
---
16
 
 target-arm/cpu.h           |  2 ++
17
 
 target-arm/helper.c        | 28 ++++++++++++++++++++++++++++
18
 
 target-arm/translate-a64.c | 28 ----------------------------
19
 
 3 files changed, 30 insertions(+), 28 deletions(-)
20
 
 
21
 
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
22
 
index 484728f..4d0b2d7 100644
23
 
--- a/target-arm/cpu.h
24
 
+++ b/target-arm/cpu.h
25
 
@@ -500,6 +500,8 @@ enum arm_fprounding {
26
 
     FPROUNDING_ODD
27
 
 };
28
 
 
29
 
+int arm_rmode_to_sf(int rmode);
30
 
+
31
 
 enum arm_cpu_mode {
32
 
   ARM_CPU_MODE_USR = 0x10,
33
 
   ARM_CPU_MODE_FIQ = 0x11,
34
 
diff --git a/target-arm/helper.c b/target-arm/helper.c
35
 
index 6b763e9..9c50f9e 100644
36
 
--- a/target-arm/helper.c
37
 
+++ b/target-arm/helper.c
38
 
@@ -4445,3 +4445,31 @@ float64 HELPER(rintd)(float64 x, void *fp_status)
39
 
 
40
 
     return ret;
41
 
 }
42
 
+
43
 
+/* Convert ARM rounding mode to softfloat */
44
 
+int arm_rmode_to_sf(int rmode)
45
 
+{
46
 
+    switch (rmode) {
47
 
+    case FPROUNDING_TIEAWAY:
48
 
+        rmode = float_round_ties_away;
49
 
+        break;
50
 
+    case FPROUNDING_ODD:
51
 
+        /* FIXME: add support for TIEAWAY and ODD */
52
 
+        qemu_log_mask(LOG_UNIMP, "arm: unimplemented rounding mode: %d\n",
53
 
+                      rmode);
54
 
+    case FPROUNDING_TIEEVEN:
55
 
+    default:
56
 
+        rmode = float_round_nearest_even;
57
 
+        break;
58
 
+    case FPROUNDING_POSINF:
59
 
+        rmode = float_round_up;
60
 
+        break;
61
 
+    case FPROUNDING_NEGINF:
62
 
+        rmode = float_round_down;
63
 
+        break;
64
 
+    case FPROUNDING_ZERO:
65
 
+        rmode = float_round_to_zero;
66
 
+        break;
67
 
+    }
68
 
+    return rmode;
69
 
+}
70
 
diff --git a/target-arm/translate-a64.c b/target-arm/translate-a64.c
71
 
index 7cfb55b..c22bbb5 100644
72
 
--- a/target-arm/translate-a64.c
73
 
+++ b/target-arm/translate-a64.c
74
 
@@ -3608,34 +3608,6 @@ static void disas_data_proc_reg(DisasContext *s, uint32_t insn)
75
 
     }
76
 
 }
77
 
 
78
 
-/* Convert ARM rounding mode to softfloat */
79
 
-static inline int arm_rmode_to_sf(int rmode)
80
 
-{
81
 
-    switch (rmode) {
82
 
-    case FPROUNDING_TIEAWAY:
83
 
-        rmode = float_round_ties_away;
84
 
-        break;
85
 
-    case FPROUNDING_ODD:
86
 
-        /* FIXME: add support for TIEAWAY and ODD */
87
 
-        qemu_log_mask(LOG_UNIMP, "arm: unimplemented rounding mode: %d\n",
88
 
-                      rmode);
89
 
-    case FPROUNDING_TIEEVEN:
90
 
-    default:
91
 
-        rmode = float_round_nearest_even;
92
 
-        break;
93
 
-    case FPROUNDING_POSINF:
94
 
-        rmode = float_round_up;
95
 
-        break;
96
 
-    case FPROUNDING_NEGINF:
97
 
-        rmode = float_round_down;
98
 
-        break;
99
 
-    case FPROUNDING_ZERO:
100
 
-        rmode = float_round_to_zero;
101
 
-        break;
102
 
-    }
103
 
-    return rmode;
104
 
-}
105
 
-
106
 
 static void handle_fp_compare(DisasContext *s, bool is_double,
107
 
                               unsigned int rn, unsigned int rm,
108
 
                               bool cmp_with_zero, bool signal_all_nans)
109
 
1.9.rc1
110