diff options
author | 2017-12-13 20:52:42 -0700 | |
---|---|---|
committer | 2017-12-13 20:52:42 -0700 | |
commit | f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4 (patch) | |
tree | 7160ed8d2cbe2127aaaef0a21f8736403b0f8a7c /src/osd | |
parent | 0d70d798107d4e4e8fb9f230410aeb1e888d65c5 (diff) | |
parent | 6379bf581489df72694b1c42cc7436ca0f1d89b2 (diff) |
Merge branch 'master' of https://github.com/mamedev/mame
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/eigccx86.h | 10 | ||||
-rw-r--r-- | src/osd/eivc.h | 4 | ||||
-rw-r--r-- | src/osd/modules/file/posixdir.cpp | 1 | ||||
-rw-r--r-- | src/osd/modules/file/posixfile.cpp | 2 |
4 files changed, 8 insertions, 9 deletions
diff --git a/src/osd/eigccx86.h b/src/osd/eigccx86.h index b67b646451e..b3831d21524 100644 --- a/src/osd/eigccx86.h +++ b/src/osd/eigccx86.h @@ -474,13 +474,12 @@ _count_leading_zeros(uint32_t value) __asm__ ( " bsrl %[value], %[result] ;" " cmovzl %[bias], %[result] ;" - " xorl $31, %[result] ;" : [result] "=&r" (result) // result can be in any register : [value] "rm" (value) // 'value' can be register or memory - , [bias] "rm" (uint32_t(63)) // 'bias' can be register or memory + , [bias] "rm" (~uint32_t(0)) // 'bias' can be register or memory : "cc" // clobbers condition codes ); - return result; + return 31U - result; } @@ -497,13 +496,12 @@ _count_leading_ones(uint32_t value) __asm__ ( " bsrl %[value], %[result] ;" " cmovzl %[bias], %[result] ;" - " xorl $31, %[result] ;" : [result] "=&r" (result) // result can be in any register : [value] "rm" (~value) // 'value' can be register or memory - , [bias] "rm" (uint32_t(63)) // 'bias' can be register or memory + , [bias] "rm" (~uint32_t(0)) // 'bias' can be register or memory : "cc" // clobbers condition codes ); - return result; + return 31U - result; } #endif // MAME_OSD_EIGCCX86_H diff --git a/src/osd/eivc.h b/src/osd/eivc.h index de4ea809a28..3fa34f51b3c 100644 --- a/src/osd/eivc.h +++ b/src/osd/eivc.h @@ -31,7 +31,7 @@ inline uint8_t _count_leading_zeros(uint32_t value) { unsigned long index; - return _BitScanReverse(&index, value) ? (index ^ 31) : 32; + return _BitScanReverse(&index, value) ? (31U - index) : 32U; } #endif @@ -46,7 +46,7 @@ inline uint8_t _count_leading_zeros(uint32_t value) inline uint8_t _count_leading_ones(uint32_t value) { unsigned long index; - return _BitScanReverse(&index, ~value) ? (index ^ 31) : 32; + return _BitScanReverse(&index, ~value) ? (31U - index) : 32U; } #endif diff --git a/src/osd/modules/file/posixdir.cpp b/src/osd/modules/file/posixdir.cpp index 113c5068963..be18239ebf5 100644 --- a/src/osd/modules/file/posixdir.cpp +++ b/src/osd/modules/file/posixdir.cpp @@ -158,6 +158,7 @@ const osd::directory::entry *posix_directory::read() case DT_REG: m_entry.type = entry::entry_type::FILE; break; + case DT_UNKNOWN: case DT_LNK: if (stat_err) m_entry.type = entry::entry_type::OTHER; diff --git a/src/osd/modules/file/posixfile.cpp b/src/osd/modules/file/posixfile.cpp index 3cc122342dd..967202eb61c 100644 --- a/src/osd/modules/file/posixfile.cpp +++ b/src/osd/modules/file/posixfile.cpp @@ -446,7 +446,7 @@ bool osd_is_absolute_path(std::string const &path) if (!path.empty() && is_path_separator(path[0])) return true; #if !defined(WIN32) - else if (!path.empty() && (path[0] == '.')) + else if (!path.empty() && (path[0] == '.') && (!path[1] || is_path_separator(path[1]))) // FIXME: why is this even here? foo/./bar is a valid way to refer to foo/bar return true; #elif !defined(UNDER_CE) else if ((path.length() > 1) && (path[1] == ':')) |