Fix clang warnings / move some plat code into poly.
This commit is contained in:
@@ -286,16 +286,9 @@ void Disasm_bcx(InstrData& i, StringBuffer* str) {
|
||||
} else {
|
||||
s1 = "";
|
||||
}
|
||||
char s2[8] = {
|
||||
'c', 'r', 0,
|
||||
};
|
||||
char s2[8] = {0};
|
||||
if (!XESELECTBITS(i.B.BO, 4, 4)) {
|
||||
char* s2a = _itoa(i.B.BI >> 2, s2 + 2, 10);
|
||||
s2a += xestrlena(s2a);
|
||||
s2a[0] = ',';
|
||||
s2a[1] = ' ';
|
||||
} else {
|
||||
s2[0] = 0;
|
||||
xesnprintfa(s2, XECOUNT(s2), "cr%d, ", i.B.BI >> 2);
|
||||
}
|
||||
uint32_t nia;
|
||||
if (i.B.AA) {
|
||||
@@ -309,16 +302,9 @@ void Disasm_bcx(InstrData& i, StringBuffer* str) {
|
||||
void Disasm_bcctrx(InstrData& i, StringBuffer* str) {
|
||||
// TODO(benvanik): mnemonics
|
||||
const char* s0 = i.XL.LK ? "lr, " : "";
|
||||
char s2[8] = {
|
||||
'c', 'r', 0,
|
||||
};
|
||||
char s2[8] = {0};
|
||||
if (!XESELECTBITS(i.XL.BO, 4, 4)) {
|
||||
char* s2a = _itoa(i.XL.BI >> 2, s2 + 2, 10);
|
||||
s2a += xestrlena(s2a);
|
||||
s2a[0] = ',';
|
||||
s2a[1] = ' ';
|
||||
} else {
|
||||
s2[0] = 0;
|
||||
xesnprintfa(s2, XECOUNT(s2), "cr%d, ", i.XL.BI >> 2);
|
||||
}
|
||||
str->Append("%-8s %s%sctr", i.type->name, s0, s2);
|
||||
// TODO(benvanik): resolve target name?
|
||||
@@ -334,16 +320,9 @@ void Disasm_bclrx(InstrData& i, StringBuffer* str) {
|
||||
} else {
|
||||
s1 = "";
|
||||
}
|
||||
char s2[8] = {
|
||||
'c', 'r', 0,
|
||||
};
|
||||
char s2[8] = {0};
|
||||
if (!XESELECTBITS(i.XL.BO, 4, 4)) {
|
||||
char* s2a = _itoa(i.XL.BI >> 2, s2 + 2, 10);
|
||||
s2a += xestrlena(s2a);
|
||||
s2a[0] = ',';
|
||||
s2a[1] = ' ';
|
||||
} else {
|
||||
s2[0] = 0;
|
||||
xesnprintfa(s2, XECOUNT(s2), "cr%d, ", i.XL.BI >> 2);
|
||||
}
|
||||
str->Append("%-8s %s%s", name, s1, s2);
|
||||
}
|
||||
|
||||
@@ -588,7 +588,7 @@ int InstrEmit_vcmpxxfp_(PPCHIRBuilder& f, InstrData& i, vcmpxxfp_op cmpop,
|
||||
v = f.VectorCompareSGE(f.LoadVR(va), f.LoadVR(vb), FLOAT32_TYPE);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(cmpop);
|
||||
return 1;
|
||||
}
|
||||
if (rc) {
|
||||
@@ -648,7 +648,7 @@ int InstrEmit_vcmpxxi_(PPCHIRBuilder& f, InstrData& i, vcmpxxi_op cmpop,
|
||||
v = f.VectorCompareEQ(f.LoadVR(va), f.LoadVR(vb), INT32_TYPE);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(width);
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
@@ -664,7 +664,7 @@ int InstrEmit_vcmpxxi_(PPCHIRBuilder& f, InstrData& i, vcmpxxi_op cmpop,
|
||||
v = f.VectorCompareSGT(f.LoadVR(va), f.LoadVR(vb), INT32_TYPE);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(width);
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
@@ -680,12 +680,12 @@ int InstrEmit_vcmpxxi_(PPCHIRBuilder& f, InstrData& i, vcmpxxi_op cmpop,
|
||||
v = f.VectorCompareUGT(f.LoadVR(va), f.LoadVR(vb), INT32_TYPE);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(width);
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(cmpop);
|
||||
return 1;
|
||||
}
|
||||
if (rc) {
|
||||
@@ -1117,7 +1117,7 @@ XEEMITTER(vpermwi128, VX128_P(6, 528), VX128_P)(PPCHIRBuilder& f,
|
||||
|
||||
int InstrEmit_vrefp_(PPCHIRBuilder& f, uint32_t vd, uint32_t vb) {
|
||||
// (VD) <- 1/(VB)
|
||||
vec128_t one = {1, 1, 1, 1};
|
||||
vec128_t one = {{{1, 1, 1, 1}}};
|
||||
Value* v = f.Div(f.LoadConstant(one), f.LoadVR(vb));
|
||||
f.StoreVR(vd, v);
|
||||
return 0;
|
||||
@@ -1784,7 +1784,7 @@ XEEMITTER(vpkd3d128, VX128_4(6, 1552), VX128_4)(PPCHIRBuilder& f,
|
||||
v = f.Pack(v, PACK_TYPE_FLOAT16_4);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(type);
|
||||
return 1;
|
||||
}
|
||||
// http://hlssmod.net/he_code/public/pixelwriter.h
|
||||
@@ -1819,7 +1819,7 @@ XEEMITTER(vpkd3d128, VX128_4(6, 1552), VX128_4)(PPCHIRBuilder& f,
|
||||
control = (control & ~mask) | (src & mask);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(pack);
|
||||
return 1;
|
||||
}
|
||||
v = f.Permute(f.LoadConstant(control), f.LoadVR(vd), v, INT32_TYPE);
|
||||
@@ -1851,7 +1851,7 @@ XEEMITTER(vupkd3d128, VX128_3(6, 2032), VX128_3)(PPCHIRBuilder& f,
|
||||
v = f.Unpack(v, PACK_TYPE_FLOAT16_4);
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(type);
|
||||
return 1;
|
||||
}
|
||||
f.StoreVR(vd, v);
|
||||
|
||||
@@ -32,7 +32,7 @@ using alloy::runtime::Runtime;
|
||||
using alloy::runtime::FunctionInfo;
|
||||
|
||||
PPCHIRBuilder::PPCHIRBuilder(PPCFrontend* frontend)
|
||||
: frontend_(frontend), HIRBuilder() {
|
||||
: HIRBuilder(), frontend_(frontend) {
|
||||
comment_buffer_ = new StringBuffer(4096);
|
||||
}
|
||||
|
||||
@@ -88,8 +88,6 @@ int PPCHIRBuilder::Emit(FunctionInfo* symbol_info, bool with_debug_info) {
|
||||
// TODO(benvanik): find a way to avoid using the opcode tables.
|
||||
i.type = GetInstrType(i.code);
|
||||
|
||||
Instr* prev_instr = last_instr();
|
||||
|
||||
// Mark label, if we were assigned one earlier on in the walk.
|
||||
// We may still get a label, but it'll be inserted by LookupLabel
|
||||
// as needed.
|
||||
@@ -120,7 +118,7 @@ int PPCHIRBuilder::Emit(FunctionInfo* symbol_info, bool with_debug_info) {
|
||||
instr_offset_list_[offset] = first_instr;
|
||||
|
||||
if (!i.type) {
|
||||
XELOGCPU("Invalid instruction %.8X %.8X", i.address, i.code);
|
||||
XELOGCPU("Invalid instruction %.8llX %.8X", i.address, i.code);
|
||||
Comment("INVALID!");
|
||||
// TraceInvalidInstruction(i);
|
||||
continue;
|
||||
@@ -135,7 +133,7 @@ int PPCHIRBuilder::Emit(FunctionInfo* symbol_info, bool with_debug_info) {
|
||||
}
|
||||
|
||||
if (!i.type->emit || emit(*this, i)) {
|
||||
XELOGCPU("Unimplemented instr %.8X %.8X %s", i.address, i.code,
|
||||
XELOGCPU("Unimplemented instr %.8llX %.8X %s", i.address, i.code,
|
||||
i.type->name);
|
||||
Comment("UNIMPLEMENTED!");
|
||||
// DebugBreak();
|
||||
|
||||
@@ -146,7 +146,7 @@ void InstrAccessBits::MarkAccess(InstrRegister& reg) {
|
||||
}
|
||||
break;
|
||||
default:
|
||||
XEASSERTALWAYS();
|
||||
XEASSERTUNHANDLEDCASE(reg.set);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user