Skip to content
Snippets Groups Projects
Verified Commit 6ac18dee authored by Recolic Keghart's avatar Recolic Keghart
Browse files

> Manual commit: Fixed some complaints by Intel CC.

U201614531
recolic
Linux RECOLICPC 5.4.6-arch3-1 #1 SMP PREEMPT Tue, 24 Dec 2019 04:36:53 +0000 x86_64 GNU/Linux
 00:19:05 up 2 days,  5:52,  1 user,  load average: 1.08, 1.26, 1.17
c916e4b9f38a49ef9f92e9314f202bc2708707d3
parent 4153a625
No related branches found
No related tags found
1 merge request!2Performance tune
Pipeline #803 passed with stages
in 2 minutes and 15 seconds
...@@ -167,11 +167,11 @@ namespace pretty_print ...@@ -167,11 +167,11 @@ namespace pretty_print
template <typename T, typename TChar, typename TCharTraits, typename TDelimiters> template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
template <typename T1, typename T2> template <typename T1, typename T2>
struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::pair<T1, T2>> struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<::std::pair<T1, T2>>
{ {
using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type; using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
static void print_body(const std::pair<T1, T2> & c, ostream_type & stream) static void print_body(const ::std::pair<T1, T2> & c, ostream_type & stream)
{ {
stream << c.first; stream << c.first;
if (print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter != NULL) if (print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter != NULL)
...@@ -184,10 +184,10 @@ namespace pretty_print ...@@ -184,10 +184,10 @@ namespace pretty_print
template <typename T, typename TChar, typename TCharTraits, typename TDelimiters> template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
template <typename ...Args> template <typename ...Args>
struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::tuple<Args...>> struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<::std::tuple<Args...>>
{ {
using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type; using ostream_type = typename print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
using element_type = std::tuple<Args...>; using element_type = ::std::tuple<Args...>;
template <std::size_t I> struct Int { }; template <std::size_t I> struct Int { };
...@@ -249,10 +249,10 @@ namespace pretty_print ...@@ -249,10 +249,10 @@ namespace pretty_print
struct is_container<std::valarray<T>> : std::true_type { }; struct is_container<std::valarray<T>> : std::true_type { };
template <typename T1, typename T2> template <typename T1, typename T2>
struct is_container<std::pair<T1, T2>> : std::true_type { }; struct is_container<::std::pair<T1, T2>> : std::true_type { };
template <typename ...Args> template <typename ...Args>
struct is_container<std::tuple<Args...>> : std::true_type { }; struct is_container<::std::tuple<Args...>> : std::true_type { };
// Default delimiters // Default delimiters
...@@ -316,13 +316,13 @@ namespace pretty_print ...@@ -316,13 +316,13 @@ namespace pretty_print
// Delimiters for pair and tuple // Delimiters for pair and tuple
template <typename T1, typename T2> struct delimiters<std::pair<T1, T2>, char> { static const delimiters_values<char> values; }; template <typename T1, typename T2> struct delimiters<::std::pair<T1, T2>, char> { static const delimiters_values<char> values; };
template <typename T1, typename T2> const delimiters_values<char> delimiters<std::pair<T1, T2>, char>::values = { "(", ", ", ")" }; template <typename T1, typename T2> const delimiters_values<char> delimiters<::std::pair<T1, T2>, char>::values = { "(", ", ", ")" };
template <typename T1, typename T2> struct delimiters< ::std::pair<T1, T2>, wchar_t> { static const delimiters_values<wchar_t> values; }; template <typename T1, typename T2> struct delimiters< ::std::pair<T1, T2>, wchar_t> { static const delimiters_values<wchar_t> values; };
template <typename T1, typename T2> const delimiters_values<wchar_t> delimiters< ::std::pair<T1, T2>, wchar_t>::values = { L"(", L", ", L")" }; template <typename T1, typename T2> const delimiters_values<wchar_t> delimiters< ::std::pair<T1, T2>, wchar_t>::values = { L"(", L", ", L")" };
template <typename ...Args> struct delimiters<std::tuple<Args...>, char> { static const delimiters_values<char> values; }; template <typename ...Args> struct delimiters<::std::tuple<Args...>, char> { static const delimiters_values<char> values; };
template <typename ...Args> const delimiters_values<char> delimiters<std::tuple<Args...>, char>::values = { "(", ", ", ")" }; template <typename ...Args> const delimiters_values<char> delimiters<::std::tuple<Args...>, char>::values = { "(", ", ", ")" };
template <typename ...Args> struct delimiters< ::std::tuple<Args...>, wchar_t> { static const delimiters_values<wchar_t> values; }; template <typename ...Args> struct delimiters< ::std::tuple<Args...>, wchar_t> { static const delimiters_values<wchar_t> values; };
template <typename ...Args> const delimiters_values<wchar_t> delimiters< ::std::tuple<Args...>, wchar_t>::values = { L"(", L", ", L")" }; template <typename ...Args> const delimiters_values<wchar_t> delimiters< ::std::tuple<Args...>, wchar_t>::values = { L"(", L", ", L")" };
......
...@@ -11,7 +11,7 @@ namespace rlib { ...@@ -11,7 +11,7 @@ namespace rlib {
return (int8_t)val; return (int8_t)val;
else if constexpr(BytesCount == 2) else if constexpr(BytesCount == 2)
return (int16_t)val; return (int16_t)val;
else return val; return val;
} }
} }
......
...@@ -34,8 +34,7 @@ void* add_mmio_map(paddr_t addr, int len, mmio_callback_t callback) { ...@@ -34,8 +34,7 @@ void* add_mmio_map(paddr_t addr, int len, mmio_callback_t callback) {
/* bus interface */ /* bus interface */
__attribute__((hot)) int is_mmio(paddr_t addr) { __attribute__((hot)) int is_mmio(paddr_t addr) {
int i; for (int i = 0; i < nr_map; i ++) {
for (i = 0; i < nr_map; i ++) {
if (addr >= maps[i].low && addr <= maps[i].high) { if (addr >= maps[i].low && addr <= maps[i].high) {
return i; return i;
} }
......
...@@ -15,21 +15,29 @@ uint8_t pmem[PMEM_SIZE]; ...@@ -15,21 +15,29 @@ uint8_t pmem[PMEM_SIZE];
__attribute__((hot)) uint32_t paddr_read(paddr_t addr, int len) { __attribute__((hot)) uint32_t paddr_read(paddr_t addr, int len) {
static const uint32_t niddle[] = {0, 0xff, 0xffff, 0xffffff, 0xffffffff}; static const uint32_t niddle[] = {0, 0xff, 0xffff, 0xffffff, 0xffffffff};
#ifndef DISABLE_MMIO
if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) { if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) {
#endif
return pmem_rw(addr, uint32_t) & niddle[len]; return pmem_rw(addr, uint32_t) & niddle[len];
#ifndef DISABLE_MMIO
} }
else { else {
return mmio_read(addr, len, mmio_id); return mmio_read(addr, len, mmio_id);
} }
#endif
} }
void paddr_write(paddr_t addr, uint32_t data, int len) { void paddr_write(paddr_t addr, uint32_t data, int len) {
#ifndef DISABLE_MMIO
if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) { if(const auto mmio_id = is_mmio(addr); RLIB_MACRO_LIKELY(-1 == mmio_id)) {
#endif
memcpy(guest_to_host(addr), &data, len); memcpy(guest_to_host(addr), &data, len);
#ifndef DISABLE_MMIO
} }
else { else {
mmio_write(addr, len, data, mmio_id); mmio_write(addr, len, data, mmio_id);
} }
#endif
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment