|
|
60488e1 |
diff -up openmsx-0.15.0/build/cpu.py~ openmsx-0.15.0/build/cpu.py
|
|
|
60488e1 |
--- openmsx-0.15.0/build/cpu.py~ 2018-12-08 23:45:38.000000000 +0100
|
|
|
60488e1 |
+++ openmsx-0.15.0/build/cpu.py 2019-02-20 22:01:03.317081448 +0100
|
|
|
60488e1 |
@@ -88,6 +88,12 @@ class PPC64(CPU):
|
|
|
60488e1 |
name = 'ppc64'
|
|
|
60488e1 |
bigEndian = True
|
|
|
60488e1 |
|
|
|
60488e1 |
+class PPC64LE(CPU):
|
|
|
60488e1 |
+ '''64-bit Power PC LE.
|
|
|
60488e1 |
+ '''
|
|
|
60488e1 |
+ name = 'ppc64le'
|
|
|
60488e1 |
+ bigEndian = False
|
|
|
60488e1 |
+
|
|
|
60488e1 |
class S390(CPU):
|
|
|
60488e1 |
'''IBM S/390.
|
|
|
60488e1 |
'''
|
|
|
60488e1 |
diff -up openmsx-0.15.0/build/detectsys.py~ openmsx-0.15.0/build/detectsys.py
|
|
|
60488e1 |
--- openmsx-0.15.0/build/detectsys.py~ 2018-12-08 23:45:38.000000000 +0100
|
|
|
60488e1 |
+++ openmsx-0.15.0/build/detectsys.py 2019-02-20 22:00:17.076725383 +0100
|
|
|
60488e1 |
@@ -22,6 +22,8 @@ def detectCPU():
|
|
|
60488e1 |
return 'x86_64'
|
|
|
60488e1 |
elif cpu in ('x86', 'i386', 'i486', 'i586', 'i686'):
|
|
|
60488e1 |
return 'x86'
|
|
|
60488e1 |
+ elif cpu == 'ppc64le':
|
|
|
60488e1 |
+ return 'ppc64le'
|
|
|
60488e1 |
elif cpu.startswith('ppc') or cpu.endswith('ppc') or cpu.startswith('power'):
|
|
|
60488e1 |
return 'ppc64' if cpu.endswith('64') else 'ppc'
|
|
|
60488e1 |
elif cpu.startswith('arm'):
|
|
|
60488e1 |
diff -up openmsx-0.15.0/src/utils/small_compare.hh~ openmsx-0.15.0/src/utils/small_compare.hh
|
|
|
60488e1 |
--- openmsx-0.15.0/src/utils/small_compare.hh~ 2018-12-08 23:45:38.000000000 +0100
|
|
|
60488e1 |
+++ openmsx-0.15.0/src/utils/small_compare.hh 2019-02-20 22:41:23.008761701 +0100
|
|
|
60488e1 |
@@ -81,7 +81,7 @@ template<typename T, T v, T m> struct Sc
|
|
|
60488e1 |
};
|
|
|
60488e1 |
template<typename T, T v, T m, char N0, char ...Ns> struct ScValBeImpl<T, v, m, N0, Ns...>
|
|
|
60488e1 |
: ScValBeImpl<T, (v << 8) + T(N0 & 255), (m >> 8), Ns...> {};
|
|
|
60488e1 |
-template<typename T, char ...Ns> struct ScValBe : ScValBeImpl<T, 0, -1, Ns...> {};
|
|
|
60488e1 |
+template<typename T, char ...Ns> struct ScValBe : ScValBeImpl<T, 0, T(-1), Ns...> {};
|
|
|
60488e1 |
|
|
|
60488e1 |
// ScVal: combines all given characters in one value of type T, also computes a
|
|
|
60488e1 |
// mask-value with 1-bits in the 'used' positions.
|
|
|
60488e1 |
@@ -93,19 +93,14 @@ template<typename T, char ...Ns> struct
|
|
|
60488e1 |
template<char ...Ns> struct SmallCompare {
|
|
|
60488e1 |
using Loader = SelectLoader<sizeof...(Ns)>;
|
|
|
60488e1 |
using C = ScVal<typename Loader::type, Ns...>;
|
|
|
60488e1 |
- // workaround gcc-4.7 bug
|
|
|
60488e1 |
- //static const auto value = C::value;
|
|
|
60488e1 |
- //static const auto mask = C::mask;
|
|
|
60488e1 |
- static const typename Loader::type value = C::value;
|
|
|
60488e1 |
- static const typename Loader::type mask = C::mask;
|
|
|
60488e1 |
+ static const auto value = C::value;
|
|
|
60488e1 |
+ static const auto mask = C::mask;
|
|
|
60488e1 |
};
|
|
|
60488e1 |
|
|
|
60488e1 |
// The actual small-fixed-string-comparison.
|
|
|
60488e1 |
template<char ...Ns> bool small_compare(const char* p)
|
|
|
60488e1 |
{
|
|
|
60488e1 |
- // workaround gcc-4.7 bug
|
|
|
60488e1 |
- //using SC = SmallCompare<Ns...>;
|
|
|
60488e1 |
- typedef SmallCompare<Ns...> SC;
|
|
|
60488e1 |
+ using SC = SmallCompare<Ns...>;
|
|
|
60488e1 |
typename SC::Loader loader;
|
|
|
60488e1 |
return (loader(p) & SC::mask) == SC::value;
|
|
|
60488e1 |
}
|