Merge remote-tracking branch 'upstream/master' into canary-old-update
This commit is contained in:
commit
e44c450eb7
|
@ -4,7 +4,6 @@ language: cpp
|
|||
os:
|
||||
- linux
|
||||
|
||||
sudo: required
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
|
@ -27,10 +26,9 @@ addons:
|
|||
- libx11-dev
|
||||
- liblz4-dev
|
||||
|
||||
matrix:
|
||||
jobs:
|
||||
include:
|
||||
- env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 LINT=true
|
||||
sudo: false
|
||||
- env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Debug
|
||||
- env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Release
|
||||
|
||||
|
|
|
@ -1045,12 +1045,12 @@ struct CACHE_CONTROL
|
|||
static void Emit(X64Emitter& e, const EmitArgType& i) {
|
||||
bool is_clflush = false, is_prefetch = false;
|
||||
switch (CacheControlType(i.instr->flags)) {
|
||||
case CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH:
|
||||
case CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE:
|
||||
case CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH:
|
||||
case CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE:
|
||||
is_prefetch = true;
|
||||
break;
|
||||
case CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE:
|
||||
case CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH:
|
||||
case CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE:
|
||||
case CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH:
|
||||
is_clflush = true;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -40,10 +40,10 @@ enum LoadStoreFlags {
|
|||
};
|
||||
|
||||
enum CacheControlType {
|
||||
CACHE_CONTOROL_TYPE_DATA_TOUCH,
|
||||
CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE,
|
||||
CACHE_CONTOROL_TYPE_DATA_STORE,
|
||||
CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH,
|
||||
CACHE_CONTROL_TYPE_DATA_TOUCH,
|
||||
CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE,
|
||||
CACHE_CONTROL_TYPE_DATA_STORE,
|
||||
CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH,
|
||||
};
|
||||
|
||||
enum ArithmeticFlags {
|
||||
|
|
|
@ -1091,27 +1091,27 @@ int InstrEmit_dcbf(PPCHIRBuilder& f, const InstrData& i) {
|
|||
} else {
|
||||
Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB);
|
||||
f.CacheControl(ea, 128,
|
||||
CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE_AND_FLUSH);
|
||||
CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE_AND_FLUSH);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int InstrEmit_dcbst(PPCHIRBuilder& f, const InstrData& i) {
|
||||
Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB);
|
||||
f.CacheControl(ea, 128, CacheControlType::CACHE_CONTOROL_TYPE_DATA_STORE);
|
||||
f.CacheControl(ea, 128, CacheControlType::CACHE_CONTROL_TYPE_DATA_STORE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int InstrEmit_dcbt(PPCHIRBuilder& f, const InstrData& i) {
|
||||
Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB);
|
||||
f.CacheControl(ea, 128, CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH);
|
||||
f.CacheControl(ea, 128, CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int InstrEmit_dcbtst(PPCHIRBuilder& f, const InstrData& i) {
|
||||
Value* ea = CalculateEA_0(f, i.X.RA, i.X.RB);
|
||||
f.CacheControl(ea, 128,
|
||||
CacheControlType::CACHE_CONTOROL_TYPE_DATA_TOUCH_FOR_STORE);
|
||||
CacheControlType::CACHE_CONTROL_TYPE_DATA_TOUCH_FOR_STORE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ constexpr Register WAIT_UNTIL::register_index;
|
|||
constexpr Register SQ_PROGRAM_CNTL::register_index;
|
||||
constexpr Register SQ_CONTEXT_MISC::register_index;
|
||||
|
||||
constexpr Register VGT_DRAW_INITIATOR::register_index;
|
||||
constexpr Register VGT_OUTPUT_PATH_CNTL::register_index;
|
||||
constexpr Register VGT_HOS_CNTL::register_index;
|
||||
|
||||
|
|
|
@ -1009,10 +1009,16 @@ dword_result_t NetDll_sendto(dword_t caller, dword_t socket_handle,
|
|||
}
|
||||
DECLARE_XAM_EXPORT1(NetDll_sendto, kNetworking, kImplemented);
|
||||
|
||||
dword_result_t NetDll___WSAFDIsSet(dword_t socket_handle, lpvoid_t fd_set) {
|
||||
dword_result_t NetDll___WSAFDIsSet(dword_t socket_handle,
|
||||
pointer_t<x_fd_set> fd_set) {
|
||||
for (uint32_t i = 0; i < fd_set->fd_count.value; i++) {
|
||||
if (fd_set->fd_array[i] == socket_handle) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(NetDll___WSAFDIsSet, kNetworking, kStub);
|
||||
DECLARE_XAM_EXPORT1(NetDll___WSAFDIsSet, kNetworking, kImplemented);
|
||||
|
||||
void RegisterNetExports(xe::cpu::ExportResolver* export_resolver,
|
||||
KernelState* kernel_state) {
|
||||
|
|
|
@ -39,6 +39,9 @@ class MessageBoxDialog : public xe::ui::ImGuiDialog {
|
|||
buttons_(std::move(buttons)),
|
||||
default_button_(default_button),
|
||||
out_chosen_button_(out_chosen_button) {
|
||||
if (!title_.size()) {
|
||||
title_ = "Message Box";
|
||||
}
|
||||
if (out_chosen_button) {
|
||||
*out_chosen_button = default_button;
|
||||
}
|
||||
|
@ -53,7 +56,9 @@ class MessageBoxDialog : public xe::ui::ImGuiDialog {
|
|||
}
|
||||
if (ImGui::BeginPopupModal(title_.c_str(), nullptr,
|
||||
ImGuiWindowFlags_AlwaysAutoResize)) {
|
||||
if (description_.size()) {
|
||||
ImGui::Text("%s", description_.c_str());
|
||||
}
|
||||
if (first_draw) {
|
||||
ImGui::SetKeyboardFocusHere();
|
||||
}
|
||||
|
@ -214,6 +219,14 @@ class KeyboardInputDialog : public xe::ui::ImGuiDialog {
|
|||
default_text_(xe::to_string(default_text)),
|
||||
out_text_(out_text),
|
||||
max_length_(max_length) {
|
||||
if (!title_.size()) {
|
||||
if (!description_.size()) {
|
||||
title_ = "Keyboard Input";
|
||||
} else {
|
||||
title_ = description_;
|
||||
description_ = "";
|
||||
}
|
||||
}
|
||||
if (out_text_) {
|
||||
*out_text_ = default_text;
|
||||
}
|
||||
|
@ -231,7 +244,9 @@ class KeyboardInputDialog : public xe::ui::ImGuiDialog {
|
|||
}
|
||||
if (ImGui::BeginPopupModal(title_.c_str(), nullptr,
|
||||
ImGuiWindowFlags_AlwaysAutoResize)) {
|
||||
if (description_.size()) {
|
||||
ImGui::TextWrapped("%s", description_.c_str());
|
||||
}
|
||||
if (first_draw) {
|
||||
ImGui::SetKeyboardFocusHere();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue