summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
author Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:31:27 -0700
committer Firehawke <Firehawke@users.noreply.github.com>2017-12-13 21:31:27 -0700
commit9ece34eb218c5c1960468294c733fd00ac7fa696 (patch)
tree7160ed8d2cbe2127aaaef0a21f8736403b0f8a7c /src/osd
parent54155441e9ba9941e85d80c4834a66376a11e791 (diff)
Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame""
This reverts commit 54155441e9ba9941e85d80c4834a66376a11e791.
Diffstat (limited to 'src/osd')
-rw-r--r--src/osd/eigccx86.h10
-rw-r--r--src/osd/eivc.h4
-rw-r--r--src/osd/modules/file/posixdir.cpp1
-rw-r--r--src/osd/modules/file/posixfile.cpp2
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] == ':'))