/* Bomb out if we can't handle something. */
__attribute__ ((noreturn))
-static void unimplemented ( HChar* str )
+static void unimplemented ( const HChar* str )
{
vex_printf("amd64toIR: unimplemented feature\n");
vpanic(str);
the case where sz==1 and no REX byte is present. */
static
-HChar* nameIReg ( Int sz, UInt reg, Bool irregular )
+const HChar* nameIReg ( Int sz, UInt reg, Bool irregular )
{
- static HChar* ireg64_names[16]
+ static const HChar* ireg64_names[16]
= { "%rax", "%rcx", "%rdx", "%rbx", "%rsp", "%rbp", "%rsi", "%rdi",
"%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15" };
- static HChar* ireg32_names[16]
+ static const HChar* ireg32_names[16]
= { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi",
"%r8d", "%r9d", "%r10d","%r11d","%r12d","%r13d","%r14d","%r15d" };
- static HChar* ireg16_names[16]
+ static const HChar* ireg16_names[16]
= { "%ax", "%cx", "%dx", "%bx", "%sp", "%bp", "%si", "%di",
"%r8w", "%r9w", "%r10w","%r11w","%r12w","%r13w","%r14w","%r15w" };
- static HChar* ireg8_names[16]
+ static const HChar* ireg8_names[16]
= { "%al", "%cl", "%dl", "%bl", "%spl", "%bpl", "%sil", "%dil",
"%r8b", "%r9b", "%r10b","%r11b","%r12b","%r13b","%r14b","%r15b" };
- static HChar* ireg8_irregular[8]
+ static const HChar* ireg8_irregular[8]
= { "%al", "%cl", "%dl", "%bl", "%ah", "%ch", "%dh", "%bh" };
vassert(reg < 16);
/* Read/write various widths of %RAX, as it has various
special-purpose uses. */
-static HChar* nameIRegRAX ( Int sz )
+static const HChar* nameIRegRAX ( Int sz )
{
switch (sz) {
case 1: return "%al";
/* Read/write various widths of %RDX, as it has various
special-purpose uses. */
-static HChar* nameIRegRDX ( Int sz )
+static const HChar* nameIRegRDX ( Int sz )
{
switch (sz) {
case 1: return "%dl";
stmt( IRStmt_Put( integerGuestReg64Offset(regno), e ) );
}
-static HChar* nameIReg64 ( UInt regno )
+static const HChar* nameIReg64 ( UInt regno )
{
return nameIReg( 8, regno, False );
}
unop(Iop_32Uto64,e) ) );
}
-static HChar* nameIReg32 ( UInt regno )
+static const HChar* nameIReg32 ( UInt regno )
{
return nameIReg( 4, regno, False );
}
unop(Iop_16Uto64,e) ) );
}
-static HChar* nameIReg16 ( UInt regno )
+static const HChar* nameIReg16 ( UInt regno )
{
return nameIReg( 2, regno, False );
}
return getIReg64( lo3bits | (getRexX(pfx) << 3) );
}
-static HChar* nameIReg64rexX ( Prefix pfx, UInt lo3bits )
+static const HChar* nameIReg64rexX ( Prefix pfx, UInt lo3bits )
{
vassert(lo3bits < 8);
vassert(IS_VALID_PFX(pfx));
return nameIReg( 8, lo3bits | (getRexX(pfx) << 3), False );
}
-static HChar* nameIRegRexB ( Int sz, Prefix pfx, UInt lo3bits )
+static const HChar* nameIRegRexB ( Int sz, Prefix pfx, UInt lo3bits )
{
vassert(lo3bits < 8);
vassert(IS_VALID_PFX(pfx));
}
static
-HChar* nameIRegG ( Int sz, Prefix pfx, UChar mod_reg_rm )
+const HChar* nameIRegG ( Int sz, Prefix pfx, UChar mod_reg_rm )
{
return nameIReg( sz, gregOfRexRM(pfx,mod_reg_rm),
toBool(sz==1 && !haveREX(pfx)) );
}
static
-HChar* nameIRegE ( Int sz, Prefix pfx, UChar mod_reg_rm )
+const HChar* nameIRegE ( Int sz, Prefix pfx, UChar mod_reg_rm )
{
return nameIReg( sz, eregOfRexRM(pfx,mod_reg_rm),
toBool(sz==1 && !haveREX(pfx)) );
/* Condition codes, using the AMD encoding. */
-static HChar* name_AMD64Condcode ( AMD64Condcode cond )
+static const HChar* name_AMD64Condcode ( AMD64Condcode cond )
{
switch (cond) {
case AMD64CondO: return "o";
/* -------------- Helpers for disassembly printing. -------------- */
-static HChar* nameGrp1 ( Int opc_aux )
+static const HChar* nameGrp1 ( Int opc_aux )
{
- static HChar* grp1_names[8]
+ static const HChar* grp1_names[8]
= { "add", "or", "adc", "sbb", "and", "sub", "xor", "cmp" };
if (opc_aux < 0 || opc_aux > 7) vpanic("nameGrp1(amd64)");
return grp1_names[opc_aux];
}
-static HChar* nameGrp2 ( Int opc_aux )
+static const HChar* nameGrp2 ( Int opc_aux )
{
- static HChar* grp2_names[8]
+ static const HChar* grp2_names[8]
= { "rol", "ror", "rcl", "rcr", "shl", "shr", "shl", "sar" };
if (opc_aux < 0 || opc_aux > 7) vpanic("nameGrp2(amd64)");
return grp2_names[opc_aux];
}
-static HChar* nameGrp4 ( Int opc_aux )
+static const HChar* nameGrp4 ( Int opc_aux )
{
- static HChar* grp4_names[8]
+ static const HChar* grp4_names[8]
= { "inc", "dec", "???", "???", "???", "???", "???", "???" };
if (opc_aux < 0 || opc_aux > 1) vpanic("nameGrp4(amd64)");
return grp4_names[opc_aux];
}
-static HChar* nameGrp5 ( Int opc_aux )
+static const HChar* nameGrp5 ( Int opc_aux )
{
- static HChar* grp5_names[8]
+ static const HChar* grp5_names[8]
= { "inc", "dec", "call*", "call*", "jmp*", "jmp*", "push", "???" };
if (opc_aux < 0 || opc_aux > 6) vpanic("nameGrp5(amd64)");
return grp5_names[opc_aux];
}
-static HChar* nameGrp8 ( Int opc_aux )
+static const HChar* nameGrp8 ( Int opc_aux )
{
- static HChar* grp8_names[8]
+ static const HChar* grp8_names[8]
= { "???", "???", "???", "???", "bt", "bts", "btr", "btc" };
if (opc_aux < 4 || opc_aux > 7) vpanic("nameGrp8(amd64)");
return grp8_names[opc_aux];
}
-//.. static HChar* nameSReg ( UInt sreg )
+//.. static const HChar* nameSReg ( UInt sreg )
//.. {
//.. switch (sreg) {
//.. case R_ES: return "%es";
//.. }
//.. }
-static HChar* nameMMXReg ( Int mmxreg )
+static const HChar* nameMMXReg ( Int mmxreg )
{
- static HChar* mmx_names[8]
+ static const HChar* mmx_names[8]
= { "%mm0", "%mm1", "%mm2", "%mm3", "%mm4", "%mm5", "%mm6", "%mm7" };
if (mmxreg < 0 || mmxreg > 7) vpanic("nameMMXReg(amd64,guest)");
return mmx_names[mmxreg];
}
-static HChar* nameXMMReg ( Int xmmreg )
+static const HChar* nameXMMReg ( Int xmmreg )
{
- static HChar* xmm_names[16]
+ static const HChar* xmm_names[16]
= { "%xmm0", "%xmm1", "%xmm2", "%xmm3",
"%xmm4", "%xmm5", "%xmm6", "%xmm7",
"%xmm8", "%xmm9", "%xmm10", "%xmm11",
return xmm_names[xmmreg];
}
-static HChar* nameMMXGran ( Int gran )
+static const HChar* nameMMXGran ( Int gran )
{
switch (gran) {
case 0: return "b";
}
}
-static HChar nameISize ( Int size )
+static const HChar nameISize ( Int size )
{
switch (size) {
case 8: return 'q';
}
}
-static HChar* nameYMMReg ( Int ymmreg )
+static const HChar* nameYMMReg ( Int ymmreg )
{
- static HChar* ymm_names[16]
+ static const HChar* ymm_names[16]
= { "%ymm0", "%ymm1", "%ymm2", "%ymm3",
"%ymm4", "%ymm5", "%ymm6", "%ymm7",
"%ymm8", "%ymm9", "%ymm10", "%ymm11",
*/
static
void make_redzone_AbiHint ( VexAbiInfo* vbi,
- IRTemp new_rsp, IRTemp nia, HChar* who )
+ IRTemp new_rsp, IRTemp nia, const HChar* who )
{
Int szB = vbi->guest_stack_redzone_size;
vassert(szB >= 0);
/*------------------------------------------------------------*/
static
-HChar* segRegTxt ( Prefix pfx )
+const HChar* segRegTxt ( Prefix pfx )
{
if (pfx & PFX_CS) return "%cs:";
if (pfx & PFX_DS) return "%ds:";
Bool keep,
Int size,
Long delta0,
- HChar* t_amd64opc )
+ const HChar* t_amd64opc )
{
HChar dis_buf[50];
Int len;
Bool keep,
Int size,
Long delta0,
- HChar* t_amd64opc )
+ const HChar* t_amd64opc )
{
HChar dis_buf[50];
Int len;
IROp op8,
Bool keep,
Long delta,
- HChar* t_amd64opc )
+ const HChar* t_amd64opc )
{
Int size4 = imin(size,4);
IRType ty = szToITy(size);
Prefix pfx,
Long delta, UChar modrm,
Int am_sz, Int d_sz, Int sz, IRExpr* shift_expr,
- HChar* shift_expr_txt, Bool* decode_OK )
+ const HChar* shift_expr_txt, Bool* decode_OK )
{
/* delta on entry points at the modrm byte. */
HChar dis_buf[50];
RDX:RAX/EDX:EAX/DX:AX/AX.
*/
static void codegen_mulL_A_D ( Int sz, Bool syned,
- IRTemp tmp, HChar* tmp_txt )
+ IRTemp tmp, const HChar* tmp_txt )
{
IRType ty = szToITy(sz);
IRTemp t1 = newTemp(ty);
static
void dis_string_op( void (*dis_OP)( Int, IRTemp, Prefix pfx ),
- Int sz, HChar* name, Prefix pfx )
+ Int sz, const HChar* name, Prefix pfx )
{
IRTemp t_inc = newTemp(Ity_I64);
/* Really we ought to inspect the override prefixes, but we don't.
void dis_REP_op ( /*MOD*/DisResult* dres,
AMD64Condcode cond,
void (*dis_OP)(Int, IRTemp, Prefix),
- Int sz, Addr64 rip, Addr64 rip_next, HChar* name,
+ Int sz, Addr64 rip, Addr64 rip_next, const HChar* name,
Prefix pfx )
{
IRTemp t_inc = newTemp(Ity_I64);
Need to check ST(0)'s tag on read, but not on write.
*/
static
-void fp_do_op_mem_ST_0 ( IRTemp addr, HChar* op_txt, HChar* dis_buf,
+void fp_do_op_mem_ST_0 ( IRTemp addr, const HChar* op_txt, HChar* dis_buf,
IROp op, Bool dbl )
{
DIP("f%s%c %s\n", op_txt, dbl?'l':'s', dis_buf);
Need to check ST(0)'s tag on read, but not on write.
*/
static
-void fp_do_oprev_mem_ST_0 ( IRTemp addr, HChar* op_txt, HChar* dis_buf,
+void fp_do_oprev_mem_ST_0 ( IRTemp addr, const HChar* op_txt, HChar* dis_buf,
IROp op, Bool dbl )
{
DIP("f%s%c %s\n", op_txt, dbl?'l':'s', dis_buf);
Check dst and src tags when reading but not on write.
*/
static
-void fp_do_op_ST_ST ( HChar* op_txt, IROp op, UInt st_src, UInt st_dst,
+void fp_do_op_ST_ST ( const HChar* op_txt, IROp op, UInt st_src, UInt st_dst,
Bool pop_after )
{
DIP("f%s%s st(%u), st(%u)\n", op_txt, pop_after?"p":"", st_src, st_dst );
Check dst and src tags when reading but not on write.
*/
static
-void fp_do_oprev_ST_ST ( HChar* op_txt, IROp op, UInt st_src, UInt st_dst,
+void fp_do_oprev_ST_ST ( const HChar* op_txt, IROp op, UInt st_src, UInt st_dst,
Bool pop_after )
{
DIP("f%s%s st(%u), st(%u)\n", op_txt, pop_after?"p":"", st_src, st_dst );
Prefix pfx,
Long delta,
UChar opc,
- HChar* name,
+ const HChar* name,
Bool show_granularity )
{
HChar dis_buf[50];
Bool invG = False;
IROp op = Iop_INVALID;
void* hAddr = NULL;
- HChar* hName = NULL;
+ const HChar* hName = NULL;
Bool eLeft = False;
# define XXX(_name) do { hAddr = &_name; hName = #_name; } while (0)
static ULong dis_MMX_shiftG_byE ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen, size;
straight copy of dis_SSE_shiftE_imm. */
static
-ULong dis_MMX_shiftE_imm ( Long delta, HChar* opname, IROp op )
+ULong dis_MMX_shiftE_imm ( Long delta, const HChar* opname, IROp op )
{
Bool shl, shr, sar;
UChar rm = getUChar(delta);
Int sz,
IRExpr* shift_amt,
Bool amt_is_literal,
- HChar* shift_amt_txt,
+ const HChar* shift_amt_txt,
Bool left_shift )
{
/* shift_amt :: Ity_I8 is the amount to shift. shift_amt_txt is used
typedef enum { BtOpNone, BtOpSet, BtOpReset, BtOpComp } BtOp;
-static HChar* nameBtOp ( BtOp op )
+static const HChar* nameBtOp ( BtOp op )
{
switch (op) {
case BtOpNone: return "";
static ULong dis_SSE_E_to_G_all_wrk (
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op,
+ const HChar* opname, IROp op,
Bool invertG
)
{
static
ULong dis_SSE_E_to_G_all ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
return dis_SSE_E_to_G_all_wrk( vbi, pfx, delta, opname, op, False );
}
static
ULong dis_SSE_E_to_G_all_invG ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
return dis_SSE_E_to_G_all_wrk( vbi, pfx, delta, opname, op, True );
}
static ULong dis_SSE_E_to_G_lo32 ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static ULong dis_SSE_E_to_G_lo64 ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static ULong dis_SSE_E_to_G_unary_all (
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op
+ const HChar* opname, IROp op
)
{
HChar dis_buf[50];
static ULong dis_SSE_E_to_G_unary_lo32 (
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op
+ const HChar* opname, IROp op
)
{
/* First we need to get the old G value and patch the low 32 bits
static ULong dis_SSE_E_to_G_unary_lo64 (
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op
+ const HChar* opname, IROp op
)
{
/* First we need to get the old G value and patch the low 64 bits
static ULong dis_SSEint_E_to_G(
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op,
+ const HChar* opname, IROp op,
Bool eLeft
)
{
static Long dis_SSE_cmp_E_to_G ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, Bool all_lanes, Int sz )
+ const HChar* opname, Bool all_lanes, Int sz )
{
Long delta0 = delta;
HChar dis_buf[50];
static ULong dis_SSE_shiftG_byE ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen, size;
static
ULong dis_SSE_shiftE_imm ( Prefix pfx,
- Long delta, HChar* opname, IROp op )
+ Long delta, const HChar* opname, IROp op )
{
Bool shl, shr, sar;
UChar rm = getUChar(delta);
HChar dis_buf[50];
IRTemp sV = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* strV = writesYmm ? "v" : "";
+ const HChar* strV = writesYmm ? "v" : "";
IRTemp addr = IRTemp_INVALID;
if (epartIsReg(modrm)) {
assign( sV, getXMMReg(eregOfRexRM(pfx,modrm)) );
UChar modrm = getUChar(delta);
IRTemp arg64 = newTemp(Ity_I64);
UInt rG = gregOfRexRM(pfx,modrm);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
if (epartIsReg(modrm)) {
UInt rE = eregOfRexRM(pfx,modrm);
assign( arg64, getXMMRegLane64(rE, 0) );
&& !epartIsReg(getUChar(delta))
&& gregLO3ofRM(getUChar(delta)) >= 0
&& gregLO3ofRM(getUChar(delta)) <= 3) {
- HChar* hintstr = "??";
+ const HChar* hintstr = "??";
modrm = getUChar(delta);
vassert(!epartIsReg(modrm));
IRTemp eV = newTemp(Ity_V128);
IRTemp gV = newTemp(Ity_V128);
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
if (epartIsReg(modrm)) {
IRTemp eV = newTemp(Ity_V128);
IRTemp gV = newTemp(Ity_V128);
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
if (epartIsReg(modrm)) {
IRTemp addr = IRTemp_INVALID;
Int alen = 0;
HChar dis_buf[50];
- HChar* str = "???";
+ const HChar* str = "???";
IROp opV64 = Iop_INVALID;
IROp opCatO = Iop_CatOddLanes16x4;
IROp opCatE = Iop_CatEvenLanes16x4;
/* 0F 38 07 = PHSUBSW -- 16x4 signed qsub across from E (mem or
mmx) and G to G (mmx). */
if (haveNo66noF2noF3(pfx) && sz == 4) {
- HChar* str = "???";
+ const HChar* str = "???";
IROp opV64 = Iop_INVALID;
IROp opCatO = Iop_CatOddLanes16x4;
IROp opCatE = Iop_CatEvenLanes16x4;
IRTemp sLo = newTemp(Ity_I64);
IRTemp dHi = newTemp(Ity_I64);
IRTemp dLo = newTemp(Ity_I64);
- HChar* str = "???";
+ const HChar* str = "???";
Int laneszB = 0;
switch (opc) {
if (haveNo66noF2noF3(pfx) && sz == 4) {
IRTemp sV = newTemp(Ity_I64);
IRTemp dV = newTemp(Ity_I64);
- HChar* str = "???";
+ const HChar* str = "???";
Int laneszB = 0;
switch (opc) {
if (have66noF2noF3(pfx)
&& (sz == 2 || /*redundant REX.W*/ sz == 8)) {
IRTemp sV = newTemp(Ity_V128);
- HChar* str = "???";
+ const HChar* str = "???";
Int laneszB = 0;
switch (opc) {
/* 0F 38 1E = PABSD -- Packed Absolute Value 32x2 (MMX) */
if (haveNo66noF2noF3(pfx) && sz == 4) {
IRTemp sV = newTemp(Ity_I64);
- HChar* str = "???";
+ const HChar* str = "???";
Int laneszB = 0;
switch (opc) {
HChar dis_buf[50];
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
- HChar how = xIsZ ? 'z' : 's';
+ const HChar* mbV = isAvx ? "v" : "";
+ const HChar how = xIsZ ? 'z' : 's';
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg(modrm) ) {
UInt rE = eregOfRexRM(pfx, modrm);
HChar dis_buf[50];
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
- HChar how = xIsZ ? 'z' : 's';
+ const HChar* mbV = isAvx ? "v" : "";
+ const HChar how = xIsZ ? 'z' : 's';
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg(modrm) ) {
HChar dis_buf[50];
IRTemp srcBytes = newTemp(Ity_I32);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg( modrm ) ) {
HChar dis_buf[50];
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg( modrm ) ) {
IRTemp srcI64 = newTemp(Ity_I64);
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
- HChar how = xIsZ ? 'z' : 's';
+ const HChar* mbV = isAvx ? "v" : "";
+ const HChar how = xIsZ ? 'z' : 's';
UInt rG = gregOfRexRM(pfx, modrm);
/* Compute both srcI64 -- the value to expand -- and srcVec -- same
thing in a V128, with arbitrary junk in the top 64 bits. Use
HChar dis_buf[50];
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
- HChar how = xIsZ ? 'z' : 's';
+ const HChar* mbV = isAvx ? "v" : "";
+ const HChar how = xIsZ ? 'z' : 's';
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg(modrm) ) {
UInt rE = eregOfRexRM(pfx, modrm);
HChar dis_buf[50];
IRTemp srcBytes = newTemp(Ity_I16);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg(modrm) ) {
UInt rE = eregOfRexRM(pfx, modrm);
HChar dis_buf[50];
IRTemp srcVec = newTemp(Ity_V128);
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
UInt rG = gregOfRexRM(pfx, modrm);
if ( epartIsReg(modrm) ) {
UInt rE = eregOfRexRM(pfx, modrm);
Int alen = 0;
HChar dis_buf[50];
UChar modrm = getUChar(delta);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
IRTemp sV = newTemp(Ity_V128);
IRTemp sHi = newTemp(Ity_I64);
IRTemp sLo = newTemp(Ity_I64);
}
void* fn = &amd64g_dirtyhelper_AES;
- HChar* nm = "amd64g_dirtyhelper_AES";
+ const HChar* nm = "amd64g_dirtyhelper_AES";
/* Round up the arguments. Note that this is a kludge -- the
use of mkU64 rather than mkIRExpr_HWord implies the
stmt( IRStmt_Dirty(d) );
{
- HChar* opsuf;
+ const HChar* opsuf;
switch (opc) {
case 0xDC: opsuf = "enc"; break;
case 0XDD: opsuf = "enclast"; break;
/* Who ya gonna call? Presumably not Ghostbusters. */
void* fn = &amd64g_dirtyhelper_AESKEYGENASSIST;
- HChar* nm = "amd64g_dirtyhelper_AESKEYGENASSIST";
+ const HChar* nm = "amd64g_dirtyhelper_AESKEYGENASSIST";
/* Round up the arguments. Note that this is a kludge -- the
use of mkU64 rather than mkIRExpr_HWord implies the
if (have66noF2noF3(pfx) && sz == 2) {
modrm = getUChar(delta);
- HChar* nm = NULL;
+ const HChar* nm = NULL;
UInt gran = 0;
IROp opSAR = Iop_INVALID;
switch (opc) {
assign(valG0, binop(Iop_And64, getIRegG(8, pfx, modrm),
mkU64(0xFFFFFFFF)));
- HChar* nm = NULL;
+ const HChar* nm = NULL;
void* fn = NULL;
switch (sz) {
case 1: nm = "amd64g_calc_crc32b";
Int imm8_20;
IRTemp xmm_vec = newTemp(Ity_V128);
IRTemp d16 = newTemp(Ity_I16);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
vassert(0==getRexW(pfx)); /* ensured by caller */
assign( xmm_vec, getXMMReg(rG) );
Int imm8_10;
IRTemp xmm_vec = newTemp(Ity_V128);
IRTemp src_dword = newTemp(Ity_I32);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
vassert(0==getRexW(pfx)); /* ensured by caller */
modrm = getUChar(delta);
Int imm8_0;
IRTemp xmm_vec = newTemp(Ity_V128);
IRTemp src_qword = newTemp(Ity_I64);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
vassert(1==getRexW(pfx)); /* ensured by caller */
modrm = getUChar(delta);
/* Who ya gonna call? Presumably not Ghostbusters. */
void* fn = &amd64g_dirtyhelper_PCMPxSTRx;
- HChar* nm = "amd64g_dirtyhelper_PCMPxSTRx";
+ const HChar* nm = "amd64g_dirtyhelper_PCMPxSTRx";
/* Round up the arguments. Note that this is a kludge -- the use
of mkU64 rather than mkIRExpr_HWord implies the assumption that
IRTemp xmm_vec = newTemp(Ity_V128);
IRTemp sel_lane = newTemp(Ity_I32);
IRTemp shr_lane = newTemp(Ity_I32);
- HChar* mbV = isAvx ? "v" : "";
+ const HChar* mbV = isAvx ? "v" : "";
UChar modrm = getUChar(delta);
IRTemp t3, t2, t1, t0;
Int imm8;
case 0x7E: /* JLEb/JNGb (jump less or equal) */
case 0x7F: { /* JGb/JNLEb (jump greater) */
Long jmpDelta;
- HChar* comment = "";
+ const HChar* comment = "";
if (haveF2orF3(pfx)) goto decode_failure;
jmpDelta = getSDisp8(delta);
vassert(-128 <= jmpDelta && jmpDelta < 128);
IRExpr* zbit = NULL;
IRExpr* count = NULL;
IRExpr* cond = NULL;
- HChar* xtra = NULL;
+ const HChar* xtra = NULL;
if (have66orF2orF3(pfx) || 1==getRexW(pfx)) goto decode_failure;
/* So at this point we've rejected any variants which appear to
case 0x8E: /* JLEb/JNGb (jump less or equal) */
case 0x8F: { /* JGb/JNLEb (jump greater) */
Long jmpDelta;
- HChar* comment = "";
+ const HChar* comment = "";
if (haveF2orF3(pfx)) goto decode_failure;
jmpDelta = getSDisp32(delta);
d64 = (guest_RIP_bbstart+delta+4) + jmpDelta;
declared to mod rax, wr rbx, rcx, rdx
*/
IRDirty* d = NULL;
- HChar* fName = NULL;
+ const HChar* fName = NULL;
void* fAddr = NULL;
if (haveF2orF3(pfx)) goto decode_failure;
if (archinfo->hwcaps == (VEX_HWCAPS_AMD64_SSE3
static
Long dis_VEX_NDS_128_AnySimdPfx_0F_WIG (
/*OUT*/Bool* uses_vvvv, VexAbiInfo* vbi,
- Prefix pfx, Long delta, HChar* name,
+ Prefix pfx, Long delta, const HChar* name,
/* The actual operation. Use either 'op' or 'opfn',
but not both. */
IROp op, IRTemp(*opFn)(IRTemp,IRTemp),
static
Long dis_VEX_NDS_128_AnySimdPfx_0F_WIG_simple (
/*OUT*/Bool* uses_vvvv, VexAbiInfo* vbi,
- Prefix pfx, Long delta, HChar* name,
+ Prefix pfx, Long delta, const HChar* name,
IROp op
)
{
static
Long dis_VEX_NDS_128_AnySimdPfx_0F_WIG_complex (
/*OUT*/Bool* uses_vvvv, VexAbiInfo* vbi,
- Prefix pfx, Long delta, HChar* name,
+ Prefix pfx, Long delta, const HChar* name,
IRTemp(*opFn)(IRTemp,IRTemp)
)
{
of E. */
static ULong dis_AVX128_shiftV_byE ( VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen, size;
version of dis_SSE_shiftE_imm. */
static
Long dis_AVX128_shiftE_to_V_imm( Prefix pfx,
- Long delta, HChar* opname, IROp op )
+ Long delta, const HChar* opname, IROp op )
{
Bool shl, shr, sar;
UChar rm = getUChar(delta);
static Long dis_AVX128_E_V_to_G_lo64 ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static Long dis_AVX128_E_V_to_G_lo64_unary ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static Long dis_AVX128_E_V_to_G_lo32_unary ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static Long dis_AVX128_E_V_to_G_lo32 ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static Long dis_AVX128_E_V_to_G ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
return dis_VEX_NDS_128_AnySimdPfx_0F_WIG(
uses_vvvv, vbi, pfx, delta, opname, op,
Long dis_AVX128_cmp_V_E_to_G ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, Bool all_lanes, Int sz )
+ const HChar* opname, Bool all_lanes, Int sz )
{
vassert(sz == 4 || sz == 8);
Long deltaIN = delta;
Long dis_AVX256_cmp_V_E_to_G ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, Int sz )
+ const HChar* opname, Int sz )
{
vassert(sz == 4 || sz == 8);
Long deltaIN = delta;
Long dis_AVX128_E_to_G_unary ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname,
+ const HChar* opname,
IRTemp (*opFn)(IRTemp) )
{
HChar dis_buf[50];
Long dis_AVX128_E_to_G_unary_all ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
static
Long dis_VEX_NDS_256_AnySimdPfx_0F_WIG (
/*OUT*/Bool* uses_vvvv, VexAbiInfo* vbi,
- Prefix pfx, Long delta, HChar* name,
+ Prefix pfx, Long delta, const HChar* name,
/* The actual operation. Use either 'op' or 'opfn',
but not both. */
IROp op, IRTemp(*opFn)(IRTemp,IRTemp),
static Long dis_AVX256_E_V_to_G ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
return dis_VEX_NDS_256_AnySimdPfx_0F_WIG(
uses_vvvv, vbi, pfx, delta, opname, op,
static
Long dis_VEX_NDS_256_AnySimdPfx_0F_WIG_complex (
/*OUT*/Bool* uses_vvvv, VexAbiInfo* vbi,
- Prefix pfx, Long delta, HChar* name,
+ Prefix pfx, Long delta, const HChar* name,
IRTemp(*opFn)(IRTemp,IRTemp)
)
{
Long dis_AVX256_E_to_G_unary_all ( /*OUT*/Bool* uses_vvvv,
VexAbiInfo* vbi,
Prefix pfx, Long delta,
- HChar* opname, IROp op )
+ const HChar* opname, IROp op )
{
HChar dis_buf[50];
Int alen;
IRTemp sV = newTemp(Ity_V128);
IRTemp dV = newTemp(Ity_V128);
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
UChar modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
UInt rV = getVexNvvvv(pfx);
IRTemp dV = newTemp(Ity_V256);
IRTemp s1, s0, d1, d0;
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
UChar modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
UInt rV = getVexNvvvv(pfx);
IRTemp sV = newTemp(Ity_V128);
IRTemp dV = newTemp(Ity_V128);
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
UChar modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
UInt rV = getVexNvvvv(pfx);
IRTemp dV = newTemp(Ity_V256);
IRTemp s1, s0, d1, d0;
Bool isAdd = opc == 0x7C;
- HChar* str = isAdd ? "add" : "sub";
+ const HChar* str = isAdd ? "add" : "sub";
UChar modrm = getUChar(delta);
UInt rG = gregOfRexRM(pfx,modrm);
UInt rV = getVexNvvvv(pfx);
/*--- Build IR for formats ---*/
/*------------------------------------------------------------*/
static void
-s390_format_I(HChar *(*irgen)(UChar i),
+s390_format_I(const HChar *(*irgen)(UChar i),
UChar i)
{
- HChar *mnm = irgen(i);
+ const HChar *mnm = irgen(i);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC2(MNM, UINT), mnm, i);
}
static void
-s390_format_RI(HChar *(*irgen)(UChar r1, UShort i2),
+s390_format_RI(const HChar *(*irgen)(UChar r1, UShort i2),
UChar r1, UShort i2)
{
irgen(r1, i2);
}
static void
-s390_format_RI_RU(HChar *(*irgen)(UChar r1, UShort i2),
+s390_format_RI_RU(const HChar *(*irgen)(UChar r1, UShort i2),
UChar r1, UShort i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, UINT), mnm, r1, i2);
}
static void
-s390_format_RI_RI(HChar *(*irgen)(UChar r1, UShort i2),
+s390_format_RI_RI(const HChar *(*irgen)(UChar r1, UShort i2),
UChar r1, UShort i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, INT), mnm, r1, (Int)(Short)i2);
}
static void
-s390_format_RI_RP(HChar *(*irgen)(UChar r1, UShort i2),
+s390_format_RI_RP(const HChar *(*irgen)(UChar r1, UShort i2),
UChar r1, UShort i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, PCREL), mnm, r1, (Int)(Short)i2);
}
static void
-s390_format_RIE_RRP(HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
+s390_format_RIE_RRP(const HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
UChar r1, UChar r3, UShort i2)
{
- HChar *mnm = irgen(r1, r3, i2);
+ const HChar *mnm = irgen(r1, r3, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, GPR, GPR, PCREL), mnm, r1, r3, (Int)(Short)i2);
}
static void
-s390_format_RIE_RRI0(HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
+s390_format_RIE_RRI0(const HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
UChar r1, UChar r3, UShort i2)
{
- HChar *mnm = irgen(r1, r3, i2);
+ const HChar *mnm = irgen(r1, r3, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, GPR, GPR, INT), mnm, r1, r3, (Int)(Short)i2);
}
static void
-s390_format_RIE_RRUUU(HChar *(*irgen)(UChar r1, UChar r2, UChar i3, UChar i4,
- UChar i5),
+s390_format_RIE_RRUUU(const HChar *(*irgen)(UChar r1, UChar r2, UChar i3,
+ UChar i4, UChar i5),
UChar r1, UChar r2, UChar i3, UChar i4, UChar i5)
{
- HChar *mnm = irgen(r1, r2, i3, i4, i5);
+ const HChar *mnm = irgen(r1, r2, i3, i4, i5);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC6(MNM, GPR, GPR, UINT, UINT, UINT), mnm, r1, r2, i3, i4,
}
static void
-s390_format_RIE_RRPU(HChar *(*irgen)(UChar r1, UChar r2, UShort i4, UChar m3),
+s390_format_RIE_RRPU(const HChar *(*irgen)(UChar r1, UChar r2, UShort i4,
+ UChar m3),
UChar r1, UChar r2, UShort i4, UChar m3)
{
- HChar *mnm = irgen(r1, r2, i4, m3);
+ const HChar *mnm = irgen(r1, r2, i4, m3);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(XMNM, GPR, GPR, CABM, PCREL), S390_XMNM_CAB, mnm, m3, r1,
}
static void
-s390_format_RIE_RUPU(HChar *(*irgen)(UChar r1, UChar m3, UShort i4, UChar i2),
+s390_format_RIE_RUPU(const HChar *(*irgen)(UChar r1, UChar m3, UShort i4,
+ UChar i2),
UChar r1, UChar m3, UShort i4, UChar i2)
{
- HChar *mnm = irgen(r1, m3, i4, i2);
+ const HChar *mnm = irgen(r1, m3, i4, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(XMNM, GPR, UINT, CABM, PCREL), S390_XMNM_CAB, mnm, m3,
}
static void
-s390_format_RIE_RUPI(HChar *(*irgen)(UChar r1, UChar m3, UShort i4, UChar i2),
+s390_format_RIE_RUPI(const HChar *(*irgen)(UChar r1, UChar m3, UShort i4,
+ UChar i2),
UChar r1, UChar m3, UShort i4, UChar i2)
{
- HChar *mnm = irgen(r1, m3, i4, i2);
+ const HChar *mnm = irgen(r1, m3, i4, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(XMNM, GPR, INT, CABM, PCREL), S390_XMNM_CAB, mnm, m3, r1,
}
static void
-s390_format_RIL(HChar *(*irgen)(UChar r1, UInt i2),
+s390_format_RIL(const HChar *(*irgen)(UChar r1, UInt i2),
UChar r1, UInt i2)
{
irgen(r1, i2);
}
static void
-s390_format_RIL_RU(HChar *(*irgen)(UChar r1, UInt i2),
+s390_format_RIL_RU(const HChar *(*irgen)(UChar r1, UInt i2),
UChar r1, UInt i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, UINT), mnm, r1, i2);
}
static void
-s390_format_RIL_RI(HChar *(*irgen)(UChar r1, UInt i2),
+s390_format_RIL_RI(const HChar *(*irgen)(UChar r1, UInt i2),
UChar r1, UInt i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, INT), mnm, r1, i2);
}
static void
-s390_format_RIL_RP(HChar *(*irgen)(UChar r1, UInt i2),
+s390_format_RIL_RP(const HChar *(*irgen)(UChar r1, UInt i2),
UChar r1, UInt i2)
{
- HChar *mnm = irgen(r1, i2);
+ const HChar *mnm = irgen(r1, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, PCREL), mnm, r1, i2);
}
static void
-s390_format_RIL_UP(HChar *(*irgen)(void),
+s390_format_RIL_UP(const HChar *(*irgen)(void),
UChar r1, UInt i2)
{
- HChar *mnm = irgen();
+ const HChar *mnm = irgen();
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, UINT, PCREL), mnm, r1, i2);
}
static void
-s390_format_RIS_RURDI(HChar *(*irgen)(UChar r1, UChar m3, UChar i2,
+s390_format_RIS_RURDI(const HChar *(*irgen)(UChar r1, UChar m3, UChar i2,
IRTemp op4addr),
UChar r1, UChar m3, UChar b4, UShort d4, UChar i2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op4addr = newTemp(Ity_I64);
assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
}
static void
-s390_format_RIS_RURDU(HChar *(*irgen)(UChar r1, UChar m3, UChar i2,
+s390_format_RIS_RURDU(const HChar *(*irgen)(UChar r1, UChar m3, UChar i2,
IRTemp op4addr),
UChar r1, UChar m3, UChar b4, UShort d4, UChar i2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op4addr = newTemp(Ity_I64);
assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
}
static void
-s390_format_RR(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RR(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
irgen(r1, r2);
}
static void
-s390_format_RR_RR(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RR_RR(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, GPR), mnm, r1, r2);
}
static void
-s390_format_RR_FF(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RR_FF(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, FPR, FPR), mnm, r1, r2);
}
static void
-s390_format_RRE(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RRE(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
irgen(r1, r2);
}
static void
-s390_format_RRE_RR(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RRE_RR(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, GPR), mnm, r1, r2);
}
static void
-s390_format_RRE_FF(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RRE_FF(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, FPR, FPR), mnm, r1, r2);
}
static void
-s390_format_RRE_RF(HChar *(*irgen)(UChar, UChar),
+s390_format_RRE_RF(const HChar *(*irgen)(UChar, UChar),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, GPR, FPR), mnm, r1, r2);
}
static void
-s390_format_RRE_FR(HChar *(*irgen)(UChar r1, UChar r2),
+s390_format_RRE_FR(const HChar *(*irgen)(UChar r1, UChar r2),
UChar r1, UChar r2)
{
- HChar *mnm = irgen(r1, r2);
+ const HChar *mnm = irgen(r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC3(MNM, FPR, GPR), mnm, r1, r2);
}
static void
-s390_format_RRE_R0(HChar *(*irgen)(UChar r1),
+s390_format_RRE_R0(const HChar *(*irgen)(UChar r1),
UChar r1)
{
- HChar *mnm = irgen(r1);
+ const HChar *mnm = irgen(r1);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC2(MNM, GPR), mnm, r1);
}
static void
-s390_format_RRE_F0(HChar *(*irgen)(UChar r1),
+s390_format_RRE_F0(const HChar *(*irgen)(UChar r1),
UChar r1)
{
- HChar *mnm = irgen(r1);
+ const HChar *mnm = irgen(r1);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC2(MNM, FPR), mnm, r1);
}
static void
-s390_format_RRF_M0RERE(HChar *(*irgen)(UChar m3, UChar r1, UChar r2),
+s390_format_RRF_M0RERE(const HChar *(*irgen)(UChar m3, UChar r1, UChar r2),
UChar m3, UChar r1, UChar r2)
{
- HChar *mnm = irgen(m3, r1, r2);
+ const HChar *mnm = irgen(m3, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, GPR, GPR, UINT), mnm, r1, r2, m3);
}
static void
-s390_format_RRF_F0FF(HChar *(*irgen)(UChar, UChar, UChar),
+s390_format_RRF_F0FF(const HChar *(*irgen)(UChar, UChar, UChar),
UChar r1, UChar r3, UChar r2)
{
- HChar *mnm = irgen(r1, r3, r2);
+ const HChar *mnm = irgen(r1, r3, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, FPR, FPR, FPR), mnm, r1, r3, r2);
}
static void
-s390_format_RRF_UUFF(HChar *(*irgen)(UChar m3, UChar m4, UChar r1, UChar r2),
+s390_format_RRF_UUFF(const HChar *(*irgen)(UChar m3, UChar m4, UChar r1,
+ UChar r2),
UChar m3, UChar m4, UChar r1, UChar r2)
{
- HChar *mnm = irgen(m3, m4, r1, r2);
+ const HChar *mnm = irgen(m3, m4, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(MNM, FPR, UINT, FPR, UINT), mnm, r1, m3, r2, m4);
}
static void
-s390_format_RRF_UUFR(HChar *(*irgen)(UChar m3, UChar m4, UChar r1, UChar r2),
+s390_format_RRF_UUFR(const HChar *(*irgen)(UChar m3, UChar m4, UChar r1,
+ UChar r2),
UChar m3, UChar m4, UChar r1, UChar r2)
{
- HChar *mnm = irgen(m3, m4, r1, r2);
+ const HChar *mnm = irgen(m3, m4, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(MNM, FPR, UINT, GPR, UINT), mnm, r1, m3, r2, m4);
}
static void
-s390_format_RRF_UURF(HChar *(*irgen)(UChar m3, UChar m4, UChar r1, UChar r2),
+s390_format_RRF_UURF(const HChar *(*irgen)(UChar m3, UChar m4, UChar r1,
+ UChar r2),
UChar m3, UChar m4, UChar r1, UChar r2)
{
- HChar *mnm = irgen(m3, m4, r1, r2);
+ const HChar *mnm = irgen(m3, m4, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(MNM, GPR, UINT, FPR, UINT), mnm, r1, m3, r2, m4);
static void
-s390_format_RRF_U0RR(HChar *(*irgen)(UChar m3, UChar r1, UChar r2),
+s390_format_RRF_U0RR(const HChar *(*irgen)(UChar m3, UChar r1, UChar r2),
UChar m3, UChar r1, UChar r2, Int xmnm_kind)
{
irgen(m3, r1, r2);
}
static void
-s390_format_RRF_F0FF2(HChar *(*irgen)(UChar, UChar, UChar),
+s390_format_RRF_F0FF2(const HChar *(*irgen)(UChar, UChar, UChar),
UChar r3, UChar r1, UChar r2)
{
- HChar *mnm = irgen(r3, r1, r2);
+ const HChar *mnm = irgen(r3, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, FPR, FPR, FPR), mnm, r1, r3, r2);
}
static void
-s390_format_RRF_FUFF2(HChar *(*irgen)(UChar, UChar, UChar, UChar),
+s390_format_RRF_FUFF2(const HChar *(*irgen)(UChar, UChar, UChar, UChar),
UChar r3, UChar m4, UChar r1, UChar r2)
{
- HChar *mnm = irgen(r3, m4, r1, r2);
+ const HChar *mnm = irgen(r3, m4, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC5(MNM, FPR, FPR, FPR, UINT), mnm, r1, r2, r3, m4);
}
static void
-s390_format_RRF_R0RR2(HChar *(*irgen)(UChar r3, UChar r1, UChar r2),
+s390_format_RRF_R0RR2(const HChar *(*irgen)(UChar r3, UChar r1, UChar r2),
UChar r3, UChar r1, UChar r2)
{
- HChar *mnm = irgen(r3, r1, r2);
+ const HChar *mnm = irgen(r3, r1, r2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, GPR, GPR, GPR), mnm, r1, r2, r3);
}
static void
-s390_format_RRS(HChar *(*irgen)(UChar r1, UChar r2, UChar m3, IRTemp op4addr),
+s390_format_RRS(const HChar *(*irgen)(UChar r1, UChar r2, UChar m3,
+ IRTemp op4addr),
UChar r1, UChar r2, UChar b4, UShort d4, UChar m3)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op4addr = newTemp(Ity_I64);
assign(op4addr, binop(Iop_Add64, mkU64(d4), b4 != 0 ? get_gpr_dw0(b4) :
}
static void
-s390_format_RS_R0RD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RS_R0RD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
}
static void
-s390_format_RS_RRRD(HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
+s390_format_RS_RRRD(const HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
UChar r1, UChar r3, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
}
static void
-s390_format_RS_RURD(HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
+s390_format_RS_RURD(const HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
UChar r1, UChar r3, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
}
static void
-s390_format_RS_AARD(HChar *(*irgen)(UChar, UChar, IRTemp),
+s390_format_RS_AARD(const HChar *(*irgen)(UChar, UChar, IRTemp),
UChar r1, UChar r3, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
}
static void
-s390_format_RSI_RRP(HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
+s390_format_RSI_RRP(const HChar *(*irgen)(UChar r1, UChar r3, UShort i2),
UChar r1, UChar r3, UShort i2)
{
- HChar *mnm = irgen(r1, r3, i2);
+ const HChar *mnm = irgen(r1, r3, i2);
if (UNLIKELY(vex_traceflags & VEX_TRACE_FE))
s390_disasm(ENC4(MNM, GPR, GPR, PCREL), mnm, r1, r3, (Int)(Short)i2);
}
static void
-s390_format_RSY_RRRD(HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
+s390_format_RSY_RRRD(const HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
UChar r1, UChar r3, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_RSY_AARD(HChar *(*irgen)(UChar, UChar, IRTemp),
+s390_format_RSY_AARD(const HChar *(*irgen)(UChar, UChar, IRTemp),
UChar r1, UChar r3, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_RSY_RURD(HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
+s390_format_RSY_RURD(const HChar *(*irgen)(UChar r1, UChar r3, IRTemp op2addr),
UChar r1, UChar r3, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_RSY_RDRM(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RSY_RDRM(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar m3, UChar b2, UShort dl2, UChar dh2,
Int xmnm_kind)
{
}
static void
-s390_format_RX(HChar *(*irgen)(UChar r1, UChar x2, UChar b2, UShort d2,
+s390_format_RX(const HChar *(*irgen)(UChar r1, UChar x2, UChar b2, UShort d2,
IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort d2)
{
}
static void
-s390_format_RX_RRRD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RX_RRRD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
}
static void
-s390_format_RX_FRRD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RX_FRRD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
}
static void
-s390_format_RXE_FRRD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RXE_FRRD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
}
static void
-s390_format_RXF_FRRDF(HChar *(*irgen)(UChar, IRTemp, UChar),
+s390_format_RXF_FRRDF(const HChar *(*irgen)(UChar, IRTemp, UChar),
UChar r3, UChar x2, UChar b2, UShort d2, UChar r1)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, binop(Iop_Add64, mkU64(d2),
}
static void
-s390_format_RXY_RRRD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RXY_RRRD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_RXY_FRRD(HChar *(*irgen)(UChar r1, IRTemp op2addr),
+s390_format_RXY_FRRD(const HChar *(*irgen)(UChar r1, IRTemp op2addr),
UChar r1, UChar x2, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_RXY_URRD(HChar *(*irgen)(void),
+s390_format_RXY_URRD(const HChar *(*irgen)(void),
UChar r1, UChar x2, UChar b2, UShort dl2, UChar dh2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
IRTemp d2 = newTemp(Ity_I64);
}
static void
-s390_format_S_RD(HChar *(*irgen)(IRTemp op2addr),
+s390_format_S_RD(const HChar *(*irgen)(IRTemp op2addr),
UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op2addr = newTemp(Ity_I64);
assign(op2addr, binop(Iop_Add64, mkU64(d2), b2 != 0 ? get_gpr_dw0(b2) :
}
static void
-s390_format_SI_URD(HChar *(*irgen)(UChar i2, IRTemp op1addr),
+s390_format_SI_URD(const HChar *(*irgen)(UChar i2, IRTemp op1addr),
UChar i2, UChar b1, UShort d1)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
}
static void
-s390_format_SIY_URD(HChar *(*irgen)(UChar i2, IRTemp op1addr),
+s390_format_SIY_URD(const HChar *(*irgen)(UChar i2, IRTemp op1addr),
UChar i2, UChar b1, UShort dl1, UChar dh1)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
IRTemp d1 = newTemp(Ity_I64);
}
static void
-s390_format_SIY_IRD(HChar *(*irgen)(UChar i2, IRTemp op1addr),
+s390_format_SIY_IRD(const HChar *(*irgen)(UChar i2, IRTemp op1addr),
UChar i2, UChar b1, UShort dl1, UChar dh1)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
IRTemp d1 = newTemp(Ity_I64);
}
static void
-s390_format_SS_L0RDRD(HChar *(*irgen)(UChar, IRTemp, IRTemp),
+s390_format_SS_L0RDRD(const HChar *(*irgen)(UChar, IRTemp, IRTemp),
UChar l, UChar b1, UShort d1, UChar b2, UShort d2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
IRTemp op2addr = newTemp(Ity_I64);
}
static void
-s390_format_SIL_RDI(HChar *(*irgen)(UShort i2, IRTemp op1addr),
+s390_format_SIL_RDI(const HChar *(*irgen)(UShort i2, IRTemp op1addr),
UChar b1, UShort d1, UShort i2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
}
static void
-s390_format_SIL_RDU(HChar *(*irgen)(UShort i2, IRTemp op1addr),
+s390_format_SIL_RDU(const HChar *(*irgen)(UShort i2, IRTemp op1addr),
UChar b1, UShort d1, UShort i2)
{
- HChar *mnm;
+ const HChar *mnm;
IRTemp op1addr = newTemp(Ity_I64);
assign(op1addr, binop(Iop_Add64, mkU64(d1), b1 != 0 ? get_gpr_dw0(b1) :
/*--- Build IR for opcodes ---*/
/*------------------------------------------------------------*/
-static HChar *
+static const HChar *
s390_irgen_AR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "ar";
}
-static HChar *
+static const HChar *
s390_irgen_AGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "agr";
}
-static HChar *
+static const HChar *
s390_irgen_AGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "agfr";
}
-static HChar *
+static const HChar *
s390_irgen_ARK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "ark";
}
-static HChar *
+static const HChar *
s390_irgen_AGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "agrk";
}
-static HChar *
+static const HChar *
s390_irgen_A(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "a";
}
-static HChar *
+static const HChar *
s390_irgen_AY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ay";
}
-static HChar *
+static const HChar *
s390_irgen_AG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "ag";
}
-static HChar *
+static const HChar *
s390_irgen_AGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "agf";
}
-static HChar *
+static const HChar *
s390_irgen_AFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "afi";
}
-static HChar *
+static const HChar *
s390_irgen_AGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "agfi";
}
-static HChar *
+static const HChar *
s390_irgen_AHIK(UChar r1, UChar r3, UShort i2)
{
Int op2;
return "ahik";
}
-static HChar *
+static const HChar *
s390_irgen_AGHIK(UChar r1, UChar r3, UShort i2)
{
Long op2;
return "aghik";
}
-static HChar *
+static const HChar *
s390_irgen_ASI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "asi";
}
-static HChar *
+static const HChar *
s390_irgen_AGSI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "agsi";
}
-static HChar *
+static const HChar *
s390_irgen_AH(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ah";
}
-static HChar *
+static const HChar *
s390_irgen_AHY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ahy";
}
-static HChar *
+static const HChar *
s390_irgen_AHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "ahi";
}
-static HChar *
+static const HChar *
s390_irgen_AGHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "aghi";
}
-static HChar *
+static const HChar *
s390_irgen_AHHHR(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "ahhhr";
}
-static HChar *
+static const HChar *
s390_irgen_AHHLR(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "ahhlr";
}
-static HChar *
+static const HChar *
s390_irgen_AIH(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "aih";
}
-static HChar *
+static const HChar *
s390_irgen_ALR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "alr";
}
-static HChar *
+static const HChar *
s390_irgen_ALGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "algr";
}
-static HChar *
+static const HChar *
s390_irgen_ALGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "algfr";
}
-static HChar *
+static const HChar *
s390_irgen_ALRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "alrk";
}
-static HChar *
+static const HChar *
s390_irgen_ALGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "algrk";
}
-static HChar *
+static const HChar *
s390_irgen_AL(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "al";
}
-static HChar *
+static const HChar *
s390_irgen_ALY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "aly";
}
-static HChar *
+static const HChar *
s390_irgen_ALG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "alg";
}
-static HChar *
+static const HChar *
s390_irgen_ALGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "algf";
}
-static HChar *
+static const HChar *
s390_irgen_ALFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "alfi";
}
-static HChar *
+static const HChar *
s390_irgen_ALGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "algfi";
}
-static HChar *
+static const HChar *
s390_irgen_ALHHHR(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "alhhhr";
}
-static HChar *
+static const HChar *
s390_irgen_ALHHLR(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "alhhlr";
}
-static HChar *
+static const HChar *
s390_irgen_ALCR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "alcr";
}
-static HChar *
+static const HChar *
s390_irgen_ALCGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "alcgr";
}
-static HChar *
+static const HChar *
s390_irgen_ALC(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "alc";
}
-static HChar *
+static const HChar *
s390_irgen_ALCG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "alcg";
}
-static HChar *
+static const HChar *
s390_irgen_ALSI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "alsi";
}
-static HChar *
+static const HChar *
s390_irgen_ALGSI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "algsi";
}
-static HChar *
+static const HChar *
s390_irgen_ALHSIK(UChar r1, UChar r3, UShort i2)
{
UInt op2;
return "alhsik";
}
-static HChar *
+static const HChar *
s390_irgen_ALGHSIK(UChar r1, UChar r3, UShort i2)
{
ULong op2;
return "alghsik";
}
-static HChar *
+static const HChar *
s390_irgen_ALSIH(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "alsih";
}
-static HChar *
+static const HChar *
s390_irgen_ALSIHN(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "alsihn";
}
-static HChar *
+static const HChar *
s390_irgen_NR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "nr";
}
-static HChar *
+static const HChar *
s390_irgen_NGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "ngr";
}
-static HChar *
+static const HChar *
s390_irgen_NRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "nrk";
}
-static HChar *
+static const HChar *
s390_irgen_NGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "ngrk";
}
-static HChar *
+static const HChar *
s390_irgen_N(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "n";
}
-static HChar *
+static const HChar *
s390_irgen_NY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ny";
}
-static HChar *
+static const HChar *
s390_irgen_NG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "ng";
}
-static HChar *
+static const HChar *
s390_irgen_NI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "ni";
}
-static HChar *
+static const HChar *
s390_irgen_NIY(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "niy";
}
-static HChar *
+static const HChar *
s390_irgen_NIHF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "nihf";
}
-static HChar *
+static const HChar *
s390_irgen_NIHH(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "nihh";
}
-static HChar *
+static const HChar *
s390_irgen_NIHL(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "nihl";
}
-static HChar *
+static const HChar *
s390_irgen_NILF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "nilf";
}
-static HChar *
+static const HChar *
s390_irgen_NILH(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "nilh";
}
-static HChar *
+static const HChar *
s390_irgen_NILL(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "nill";
}
-static HChar *
+static const HChar *
s390_irgen_BASR(UChar r1, UChar r2)
{
IRTemp target = newTemp(Ity_I64);
return "basr";
}
-static HChar *
+static const HChar *
s390_irgen_BAS(UChar r1, IRTemp op2addr)
{
IRTemp target = newTemp(Ity_I64);
return "bas";
}
-static HChar *
+static const HChar *
s390_irgen_BCR(UChar r1, UChar r2)
{
IRTemp cond = newTemp(Ity_I32);
return "bcr";
}
-static HChar *
+static const HChar *
s390_irgen_BC(UChar r1, UChar x2, UChar b2, UShort d2, IRTemp op2addr)
{
IRTemp cond = newTemp(Ity_I32);
return "bc";
}
-static HChar *
+static const HChar *
s390_irgen_BCTR(UChar r1, UChar r2)
{
put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
return "bctr";
}
-static HChar *
+static const HChar *
s390_irgen_BCTGR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
return "bctgr";
}
-static HChar *
+static const HChar *
s390_irgen_BCT(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
return "bct";
}
-static HChar *
+static const HChar *
s390_irgen_BCTG(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
return "bctg";
}
-static HChar *
+static const HChar *
s390_irgen_BXH(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_I32);
return "bxh";
}
-static HChar *
+static const HChar *
s390_irgen_BXHG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_I64);
return "bxhg";
}
-static HChar *
+static const HChar *
s390_irgen_BXLE(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_I32);
return "bxle";
}
-static HChar *
+static const HChar *
s390_irgen_BXLEG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_I64);
return "bxleg";
}
-static HChar *
+static const HChar *
s390_irgen_BRAS(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64(guest_IA_curr_instr + 4ULL));
return "bras";
}
-static HChar *
+static const HChar *
s390_irgen_BRASL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, mkU64(guest_IA_curr_instr + 6ULL));
return "brasl";
}
-static HChar *
+static const HChar *
s390_irgen_BRC(UChar r1, UShort i2)
{
IRTemp cond = newTemp(Ity_I32);
return "brc";
}
-static HChar *
+static const HChar *
s390_irgen_BRCL(UChar r1, UInt i2)
{
IRTemp cond = newTemp(Ity_I32);
return "brcl";
}
-static HChar *
+static const HChar *
s390_irgen_BRCT(UChar r1, UShort i2)
{
put_gpr_w1(r1, binop(Iop_Sub32, get_gpr_w1(r1), mkU32(1)));
return "brct";
}
-static HChar *
+static const HChar *
s390_irgen_BRCTG(UChar r1, UShort i2)
{
put_gpr_dw0(r1, binop(Iop_Sub64, get_gpr_dw0(r1), mkU64(1)));
return "brctg";
}
-static HChar *
+static const HChar *
s390_irgen_BRXH(UChar r1, UChar r3, UShort i2)
{
IRTemp value = newTemp(Ity_I32);
return "brxh";
}
-static HChar *
+static const HChar *
s390_irgen_BRXHG(UChar r1, UChar r3, UShort i2)
{
IRTemp value = newTemp(Ity_I64);
return "brxhg";
}
-static HChar *
+static const HChar *
s390_irgen_BRXLE(UChar r1, UChar r3, UShort i2)
{
IRTemp value = newTemp(Ity_I32);
return "brxle";
}
-static HChar *
+static const HChar *
s390_irgen_BRXLG(UChar r1, UChar r3, UShort i2)
{
IRTemp value = newTemp(Ity_I64);
return "brxlg";
}
-static HChar *
+static const HChar *
s390_irgen_CR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "cr";
}
-static HChar *
+static const HChar *
s390_irgen_CGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgr";
}
-static HChar *
+static const HChar *
s390_irgen_CGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgfr";
}
-static HChar *
+static const HChar *
s390_irgen_C(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "c";
}
-static HChar *
+static const HChar *
s390_irgen_CY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "cy";
}
-static HChar *
+static const HChar *
s390_irgen_CG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cg";
}
-static HChar *
+static const HChar *
s390_irgen_CGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgf";
}
-static HChar *
+static const HChar *
s390_irgen_CFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "cfi";
}
-static HChar *
+static const HChar *
s390_irgen_CGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgfi";
}
-static HChar *
+static const HChar *
s390_irgen_CRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "crl";
}
-static HChar *
+static const HChar *
s390_irgen_CGRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgrl";
}
-static HChar *
+static const HChar *
s390_irgen_CGFRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgfrl";
}
-static HChar *
+static const HChar *
s390_irgen_CRB(UChar r1, UChar r2, UChar m3, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "crb";
}
-static HChar *
+static const HChar *
s390_irgen_CGRB(UChar r1, UChar r2, UChar m3, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgrb";
}
-static HChar *
+static const HChar *
s390_irgen_CRJ(UChar r1, UChar r2, UShort i4, UChar m3)
{
IRTemp op1 = newTemp(Ity_I32);
return "crj";
}
-static HChar *
+static const HChar *
s390_irgen_CGRJ(UChar r1, UChar r2, UShort i4, UChar m3)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgrj";
}
-static HChar *
+static const HChar *
s390_irgen_CIB(UChar r1, UChar m3, UChar i2, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "cib";
}
-static HChar *
+static const HChar *
s390_irgen_CGIB(UChar r1, UChar m3, UChar i2, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgib";
}
-static HChar *
+static const HChar *
s390_irgen_CIJ(UChar r1, UChar m3, UShort i4, UChar i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "cij";
}
-static HChar *
+static const HChar *
s390_irgen_CGIJ(UChar r1, UChar m3, UShort i4, UChar i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgij";
}
-static HChar *
+static const HChar *
s390_irgen_CH(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ch";
}
-static HChar *
+static const HChar *
s390_irgen_CHY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "chy";
}
-static HChar *
+static const HChar *
s390_irgen_CGH(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cgh";
}
-static HChar *
+static const HChar *
s390_irgen_CHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "chi";
}
-static HChar *
+static const HChar *
s390_irgen_CGHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cghi";
}
-static HChar *
+static const HChar *
s390_irgen_CHHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I16);
return "chhsi";
}
-static HChar *
+static const HChar *
s390_irgen_CHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "chsi";
}
-static HChar *
+static const HChar *
s390_irgen_CGHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "cghsi";
}
-static HChar *
+static const HChar *
s390_irgen_CHRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "chrl";
}
-static HChar *
+static const HChar *
s390_irgen_CGHRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "cghrl";
}
-static HChar *
+static const HChar *
s390_irgen_CHHR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "chhr";
}
-static HChar *
+static const HChar *
s390_irgen_CHLR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "chlr";
}
-static HChar *
+static const HChar *
s390_irgen_CHF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "chf";
}
-static HChar *
+static const HChar *
s390_irgen_CIH(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "cih";
}
-static HChar *
+static const HChar *
s390_irgen_CLR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clr";
}
-static HChar *
+static const HChar *
s390_irgen_CLGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgr";
}
-static HChar *
+static const HChar *
s390_irgen_CLGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgfr";
}
-static HChar *
+static const HChar *
s390_irgen_CL(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "cl";
}
-static HChar *
+static const HChar *
s390_irgen_CLY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "cly";
}
-static HChar *
+static const HChar *
s390_irgen_CLG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "clg";
}
-static HChar *
+static const HChar *
s390_irgen_CLGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgf";
}
-static HChar *
+static const HChar *
s390_irgen_CLFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clfi";
}
-static HChar *
+static const HChar *
s390_irgen_CLGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgfi";
}
-static HChar *
+static const HChar *
s390_irgen_CLI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "cli";
}
-static HChar *
+static const HChar *
s390_irgen_CLIY(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "cliy";
}
-static HChar *
+static const HChar *
s390_irgen_CLFHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clfhsi";
}
-static HChar *
+static const HChar *
s390_irgen_CLGHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "clghsi";
}
-static HChar *
+static const HChar *
s390_irgen_CLHHSI(UShort i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I16);
return "clhhsi";
}
-static HChar *
+static const HChar *
s390_irgen_CLRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clrl";
}
-static HChar *
+static const HChar *
s390_irgen_CLGRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgrl";
}
-static HChar *
+static const HChar *
s390_irgen_CLGFRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgfrl";
}
-static HChar *
+static const HChar *
s390_irgen_CLHRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clhrl";
}
-static HChar *
+static const HChar *
s390_irgen_CLGHRL(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clghrl";
}
-static HChar *
+static const HChar *
s390_irgen_CLRB(UChar r1, UChar r2, UChar m3, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clrb";
}
-static HChar *
+static const HChar *
s390_irgen_CLGRB(UChar r1, UChar r2, UChar m3, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgrb";
}
-static HChar *
+static const HChar *
s390_irgen_CLRJ(UChar r1, UChar r2, UShort i4, UChar m3)
{
IRTemp op1 = newTemp(Ity_I32);
return "clrj";
}
-static HChar *
+static const HChar *
s390_irgen_CLGRJ(UChar r1, UChar r2, UShort i4, UChar m3)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgrj";
}
-static HChar *
+static const HChar *
s390_irgen_CLIB(UChar r1, UChar m3, UChar i2, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clib";
}
-static HChar *
+static const HChar *
s390_irgen_CLGIB(UChar r1, UChar m3, UChar i2, IRTemp op4addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgib";
}
-static HChar *
+static const HChar *
s390_irgen_CLIJ(UChar r1, UChar m3, UShort i4, UChar i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clij";
}
-static HChar *
+static const HChar *
s390_irgen_CLGIJ(UChar r1, UChar m3, UShort i4, UChar i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "clgij";
}
-static HChar *
+static const HChar *
s390_irgen_CLM(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clm";
}
-static HChar *
+static const HChar *
s390_irgen_CLMY(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clmy";
}
-static HChar *
+static const HChar *
s390_irgen_CLMH(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clmh";
}
-static HChar *
+static const HChar *
s390_irgen_CLHHR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clhhr";
}
-static HChar *
+static const HChar *
s390_irgen_CLHLR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clhlr";
}
-static HChar *
+static const HChar *
s390_irgen_CLHF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "clhf";
}
-static HChar *
+static const HChar *
s390_irgen_CLIH(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "clih";
}
-static HChar *
+static const HChar *
s390_irgen_CPYA(UChar r1, UChar r2)
{
put_ar_w0(r1, get_ar_w0(r2));
return "cpya";
}
-static HChar *
+static const HChar *
s390_irgen_XR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "xr";
}
-static HChar *
+static const HChar *
s390_irgen_XGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "xgr";
}
-static HChar *
+static const HChar *
s390_irgen_XRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "xrk";
}
-static HChar *
+static const HChar *
s390_irgen_XGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "xgrk";
}
-static HChar *
+static const HChar *
s390_irgen_X(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "x";
}
-static HChar *
+static const HChar *
s390_irgen_XY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "xy";
}
-static HChar *
+static const HChar *
s390_irgen_XG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "xg";
}
-static HChar *
+static const HChar *
s390_irgen_XI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "xi";
}
-static HChar *
+static const HChar *
s390_irgen_XIY(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "xiy";
}
-static HChar *
+static const HChar *
s390_irgen_XIHF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "xihf";
}
-static HChar *
+static const HChar *
s390_irgen_XILF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "xilf";
}
-static HChar *
+static const HChar *
s390_irgen_EAR(UChar r1, UChar r2)
{
put_gpr_w1(r1, get_ar_w0(r2));
return "ear";
}
-static HChar *
+static const HChar *
s390_irgen_IC(UChar r1, IRTemp op2addr)
{
put_gpr_b7(r1, load(Ity_I8, mkexpr(op2addr)));
return "ic";
}
-static HChar *
+static const HChar *
s390_irgen_ICY(UChar r1, IRTemp op2addr)
{
put_gpr_b7(r1, load(Ity_I8, mkexpr(op2addr)));
return "icy";
}
-static HChar *
+static const HChar *
s390_irgen_ICM(UChar r1, UChar r3, IRTemp op2addr)
{
UChar n;
return "icm";
}
-static HChar *
+static const HChar *
s390_irgen_ICMY(UChar r1, UChar r3, IRTemp op2addr)
{
UChar n;
return "icmy";
}
-static HChar *
+static const HChar *
s390_irgen_ICMH(UChar r1, UChar r3, IRTemp op2addr)
{
UChar n;
return "icmh";
}
-static HChar *
+static const HChar *
s390_irgen_IIHF(UChar r1, UInt i2)
{
put_gpr_w0(r1, mkU32(i2));
return "iihf";
}
-static HChar *
+static const HChar *
s390_irgen_IIHH(UChar r1, UShort i2)
{
put_gpr_hw0(r1, mkU16(i2));
return "iihh";
}
-static HChar *
+static const HChar *
s390_irgen_IIHL(UChar r1, UShort i2)
{
put_gpr_hw1(r1, mkU16(i2));
return "iihl";
}
-static HChar *
+static const HChar *
s390_irgen_IILF(UChar r1, UInt i2)
{
put_gpr_w1(r1, mkU32(i2));
return "iilf";
}
-static HChar *
+static const HChar *
s390_irgen_IILH(UChar r1, UShort i2)
{
put_gpr_hw2(r1, mkU16(i2));
return "iilh";
}
-static HChar *
+static const HChar *
s390_irgen_IILL(UChar r1, UShort i2)
{
put_gpr_hw3(r1, mkU16(i2));
return "iill";
}
-static HChar *
+static const HChar *
s390_irgen_LR(UChar r1, UChar r2)
{
put_gpr_w1(r1, get_gpr_w1(r2));
return "lr";
}
-static HChar *
+static const HChar *
s390_irgen_LGR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, get_gpr_dw0(r2));
return "lgr";
}
-static HChar *
+static const HChar *
s390_irgen_LGFR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_32Sto64, get_gpr_w1(r2)));
return "lgfr";
}
-static HChar *
+static const HChar *
s390_irgen_L(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, load(Ity_I32, mkexpr(op2addr)));
return "l";
}
-static HChar *
+static const HChar *
s390_irgen_LY(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, load(Ity_I32, mkexpr(op2addr)));
return "ly";
}
-static HChar *
+static const HChar *
s390_irgen_LG(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, load(Ity_I64, mkexpr(op2addr)));
return "lg";
}
-static HChar *
+static const HChar *
s390_irgen_LGF(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_32Sto64, load(Ity_I32, mkexpr(op2addr))));
return "lgf";
}
-static HChar *
+static const HChar *
s390_irgen_LGFI(UChar r1, UInt i2)
{
put_gpr_dw0(r1, mkU64((ULong)(Long)(Int)i2));
return "lgfi";
}
-static HChar *
+static const HChar *
s390_irgen_LRL(UChar r1, UInt i2)
{
put_gpr_w1(r1, load(Ity_I32, mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)
return "lrl";
}
-static HChar *
+static const HChar *
s390_irgen_LGRL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, load(Ity_I64, mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)
return "lgrl";
}
-static HChar *
+static const HChar *
s390_irgen_LGFRL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, unop(Iop_32Sto64, load(Ity_I32, mkU64(guest_IA_curr_instr +
return "lgfrl";
}
-static HChar *
+static const HChar *
s390_irgen_LA(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, mkexpr(op2addr));
return "la";
}
-static HChar *
+static const HChar *
s390_irgen_LAY(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, mkexpr(op2addr));
return "lay";
}
-static HChar *
+static const HChar *
s390_irgen_LAE(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, mkexpr(op2addr));
return "lae";
}
-static HChar *
+static const HChar *
s390_irgen_LAEY(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, mkexpr(op2addr));
return "laey";
}
-static HChar *
+static const HChar *
s390_irgen_LARL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)i2 << 1)));
return "larl";
}
-static HChar *
+static const HChar *
s390_irgen_LAA(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "laa";
}
-static HChar *
+static const HChar *
s390_irgen_LAAG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "laag";
}
-static HChar *
+static const HChar *
s390_irgen_LAAL(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "laal";
}
-static HChar *
+static const HChar *
s390_irgen_LAALG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "laalg";
}
-static HChar *
+static const HChar *
s390_irgen_LAN(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "lan";
}
-static HChar *
+static const HChar *
s390_irgen_LANG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "lang";
}
-static HChar *
+static const HChar *
s390_irgen_LAX(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "lax";
}
-static HChar *
+static const HChar *
s390_irgen_LAXG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "laxg";
}
-static HChar *
+static const HChar *
s390_irgen_LAO(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "lao";
}
-static HChar *
+static const HChar *
s390_irgen_LAOG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "laog";
}
-static HChar *
+static const HChar *
s390_irgen_LTR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "ltr";
}
-static HChar *
+static const HChar *
s390_irgen_LTGR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "ltgr";
}
-static HChar *
+static const HChar *
s390_irgen_LTGFR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "ltgfr";
}
-static HChar *
+static const HChar *
s390_irgen_LT(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "lt";
}
-static HChar *
+static const HChar *
s390_irgen_LTG(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "ltg";
}
-static HChar *
+static const HChar *
s390_irgen_LTGF(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "ltgf";
}
-static HChar *
+static const HChar *
s390_irgen_LBR(UChar r1, UChar r2)
{
put_gpr_w1(r1, unop(Iop_8Sto32, get_gpr_b7(r2)));
return "lbr";
}
-static HChar *
+static const HChar *
s390_irgen_LGBR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_8Sto64, get_gpr_b7(r2)));
return "lgbr";
}
-static HChar *
+static const HChar *
s390_irgen_LB(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, unop(Iop_8Sto32, load(Ity_I8, mkexpr(op2addr))));
return "lb";
}
-static HChar *
+static const HChar *
s390_irgen_LGB(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_8Sto64, load(Ity_I8, mkexpr(op2addr))));
return "lgb";
}
-static HChar *
+static const HChar *
s390_irgen_LBH(UChar r1, IRTemp op2addr)
{
put_gpr_w0(r1, unop(Iop_8Sto32, load(Ity_I8, mkexpr(op2addr))));
return "lbh";
}
-static HChar *
+static const HChar *
s390_irgen_LCR(UChar r1, UChar r2)
{
Int op1;
return "lcr";
}
-static HChar *
+static const HChar *
s390_irgen_LCGR(UChar r1, UChar r2)
{
Long op1;
return "lcgr";
}
-static HChar *
+static const HChar *
s390_irgen_LCGFR(UChar r1, UChar r2)
{
Long op1;
return "lcgfr";
}
-static HChar *
+static const HChar *
s390_irgen_LHR(UChar r1, UChar r2)
{
put_gpr_w1(r1, unop(Iop_16Sto32, get_gpr_hw3(r2)));
return "lhr";
}
-static HChar *
+static const HChar *
s390_irgen_LGHR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_16Sto64, get_gpr_hw3(r2)));
return "lghr";
}
-static HChar *
+static const HChar *
s390_irgen_LH(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
return "lh";
}
-static HChar *
+static const HChar *
s390_irgen_LHY(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
return "lhy";
}
-static HChar *
+static const HChar *
s390_irgen_LGH(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_16Sto64, load(Ity_I16, mkexpr(op2addr))));
return "lgh";
}
-static HChar *
+static const HChar *
s390_irgen_LHI(UChar r1, UShort i2)
{
put_gpr_w1(r1, mkU32((UInt)(Int)(Short)i2));
return "lhi";
}
-static HChar *
+static const HChar *
s390_irgen_LGHI(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64((ULong)(Long)(Short)i2));
return "lghi";
}
-static HChar *
+static const HChar *
s390_irgen_LHRL(UChar r1, UInt i2)
{
put_gpr_w1(r1, unop(Iop_16Sto32, load(Ity_I16, mkU64(guest_IA_curr_instr +
return "lhrl";
}
-static HChar *
+static const HChar *
s390_irgen_LGHRL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, unop(Iop_16Sto64, load(Ity_I16, mkU64(guest_IA_curr_instr +
return "lghrl";
}
-static HChar *
+static const HChar *
s390_irgen_LHH(UChar r1, IRTemp op2addr)
{
put_gpr_w0(r1, unop(Iop_16Sto32, load(Ity_I16, mkexpr(op2addr))));
return "lhh";
}
-static HChar *
+static const HChar *
s390_irgen_LFH(UChar r1, IRTemp op2addr)
{
put_gpr_w0(r1, load(Ity_I32, mkexpr(op2addr)));
return "lfh";
}
-static HChar *
+static const HChar *
s390_irgen_LLGFR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_32Uto64, get_gpr_w1(r2)));
return "llgfr";
}
-static HChar *
+static const HChar *
s390_irgen_LLGF(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_32Uto64, load(Ity_I32, mkexpr(op2addr))));
return "llgf";
}
-static HChar *
+static const HChar *
s390_irgen_LLGFRL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, unop(Iop_32Uto64, load(Ity_I32, mkU64(guest_IA_curr_instr +
return "llgfrl";
}
-static HChar *
+static const HChar *
s390_irgen_LLCR(UChar r1, UChar r2)
{
put_gpr_w1(r1, unop(Iop_8Uto32, get_gpr_b7(r2)));
return "llcr";
}
-static HChar *
+static const HChar *
s390_irgen_LLGCR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_8Uto64, get_gpr_b7(r2)));
return "llgcr";
}
-static HChar *
+static const HChar *
s390_irgen_LLC(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
return "llc";
}
-static HChar *
+static const HChar *
s390_irgen_LLGC(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_8Uto64, load(Ity_I8, mkexpr(op2addr))));
return "llgc";
}
-static HChar *
+static const HChar *
s390_irgen_LLCH(UChar r1, IRTemp op2addr)
{
put_gpr_w0(r1, unop(Iop_8Uto32, load(Ity_I8, mkexpr(op2addr))));
return "llch";
}
-static HChar *
+static const HChar *
s390_irgen_LLHR(UChar r1, UChar r2)
{
put_gpr_w1(r1, unop(Iop_16Uto32, get_gpr_hw3(r2)));
return "llhr";
}
-static HChar *
+static const HChar *
s390_irgen_LLGHR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_16Uto64, get_gpr_hw3(r2)));
return "llghr";
}
-static HChar *
+static const HChar *
s390_irgen_LLH(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(op2addr))));
return "llh";
}
-static HChar *
+static const HChar *
s390_irgen_LLGH(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_16Uto64, load(Ity_I16, mkexpr(op2addr))));
return "llgh";
}
-static HChar *
+static const HChar *
s390_irgen_LLHRL(UChar r1, UInt i2)
{
put_gpr_w1(r1, unop(Iop_16Uto32, load(Ity_I16, mkU64(guest_IA_curr_instr +
return "llhrl";
}
-static HChar *
+static const HChar *
s390_irgen_LLGHRL(UChar r1, UInt i2)
{
put_gpr_dw0(r1, unop(Iop_16Uto64, load(Ity_I16, mkU64(guest_IA_curr_instr +
return "llghrl";
}
-static HChar *
+static const HChar *
s390_irgen_LLHH(UChar r1, IRTemp op2addr)
{
put_gpr_w0(r1, unop(Iop_16Uto32, load(Ity_I16, mkexpr(op2addr))));
return "llhh";
}
-static HChar *
+static const HChar *
s390_irgen_LLIHF(UChar r1, UInt i2)
{
put_gpr_dw0(r1, mkU64(((ULong)i2) << 32));
return "llihf";
}
-static HChar *
+static const HChar *
s390_irgen_LLIHH(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64(((ULong)i2) << 48));
return "llihh";
}
-static HChar *
+static const HChar *
s390_irgen_LLIHL(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64(((ULong)i2) << 32));
return "llihl";
}
-static HChar *
+static const HChar *
s390_irgen_LLILF(UChar r1, UInt i2)
{
put_gpr_dw0(r1, mkU64(i2));
return "llilf";
}
-static HChar *
+static const HChar *
s390_irgen_LLILH(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64(((ULong)i2) << 16));
return "llilh";
}
-static HChar *
+static const HChar *
s390_irgen_LLILL(UChar r1, UShort i2)
{
put_gpr_dw0(r1, mkU64(i2));
return "llill";
}
-static HChar *
+static const HChar *
s390_irgen_LLGTR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, get_gpr_w1(r2),
return "llgtr";
}
-static HChar *
+static const HChar *
s390_irgen_LLGT(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, unop(Iop_32Uto64, binop(Iop_And32, load(Ity_I32,
return "llgt";
}
-static HChar *
+static const HChar *
s390_irgen_LNR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "lnr";
}
-static HChar *
+static const HChar *
s390_irgen_LNGR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "lngr";
}
-static HChar *
+static const HChar *
s390_irgen_LNGFR(UChar r1, UChar r2 __attribute__((unused)))
{
IRTemp op2 = newTemp(Ity_I64);
return "lngfr";
}
-static HChar *
+static const HChar *
s390_irgen_LOCR(UChar m3, UChar r1, UChar r2)
{
next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
return "locr";
}
-static HChar *
+static const HChar *
s390_irgen_LOCGR(UChar m3, UChar r1, UChar r2)
{
next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
return "locgr";
}
-static HChar *
+static const HChar *
s390_irgen_LOC(UChar r1, IRTemp op2addr)
{
/* condition is checked in format handler */
return "loc";
}
-static HChar *
+static const HChar *
s390_irgen_LOCG(UChar r1, IRTemp op2addr)
{
/* condition is checked in format handler */
return "locg";
}
-static HChar *
+static const HChar *
s390_irgen_LPQ(UChar r1, IRTemp op2addr)
{
put_gpr_dw0(r1, load(Ity_I64, mkexpr(op2addr)));
return "lpq";
}
-static HChar *
+static const HChar *
s390_irgen_LPR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "lpr";
}
-static HChar *
+static const HChar *
s390_irgen_LPGR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "lpgr";
}
-static HChar *
+static const HChar *
s390_irgen_LPGFR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "lpgfr";
}
-static HChar *
+static const HChar *
s390_irgen_LRVR(UChar r1, UChar r2)
{
IRTemp b0 = newTemp(Ity_I8);
return "lrvr";
}
-static HChar *
+static const HChar *
s390_irgen_LRVGR(UChar r1, UChar r2)
{
IRTemp b0 = newTemp(Ity_I8);
return "lrvgr";
}
-static HChar *
+static const HChar *
s390_irgen_LRVH(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I16);
return "lrvh";
}
-static HChar *
+static const HChar *
s390_irgen_LRV(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "lrv";
}
-static HChar *
+static const HChar *
s390_irgen_LRVG(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "lrvg";
}
-static HChar *
+static const HChar *
s390_irgen_MVHHI(UShort i2, IRTemp op1addr)
{
store(mkexpr(op1addr), mkU16(i2));
return "mvhhi";
}
-static HChar *
+static const HChar *
s390_irgen_MVHI(UShort i2, IRTemp op1addr)
{
store(mkexpr(op1addr), mkU32((UInt)(Int)(Short)i2));
return "mvhi";
}
-static HChar *
+static const HChar *
s390_irgen_MVGHI(UShort i2, IRTemp op1addr)
{
store(mkexpr(op1addr), mkU64((ULong)(Long)(Short)i2));
return "mvghi";
}
-static HChar *
+static const HChar *
s390_irgen_MVI(UChar i2, IRTemp op1addr)
{
store(mkexpr(op1addr), mkU8(i2));
return "mvi";
}
-static HChar *
+static const HChar *
s390_irgen_MVIY(UChar i2, IRTemp op1addr)
{
store(mkexpr(op1addr), mkU8(i2));
return "mviy";
}
-static HChar *
+static const HChar *
s390_irgen_MR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "mr";
}
-static HChar *
+static const HChar *
s390_irgen_M(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "m";
}
-static HChar *
+static const HChar *
s390_irgen_MFY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "mfy";
}
-static HChar *
+static const HChar *
s390_irgen_MH(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "mh";
}
-static HChar *
+static const HChar *
s390_irgen_MHY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "mhy";
}
-static HChar *
+static const HChar *
s390_irgen_MHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "mhi";
}
-static HChar *
+static const HChar *
s390_irgen_MGHI(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "mghi";
}
-static HChar *
+static const HChar *
s390_irgen_MLR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "mlr";
}
-static HChar *
+static const HChar *
s390_irgen_MLGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "mlgr";
}
-static HChar *
+static const HChar *
s390_irgen_ML(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ml";
}
-static HChar *
+static const HChar *
s390_irgen_MLG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "mlg";
}
-static HChar *
+static const HChar *
s390_irgen_MSR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "msr";
}
-static HChar *
+static const HChar *
s390_irgen_MSGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "msgr";
}
-static HChar *
+static const HChar *
s390_irgen_MSGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "msgfr";
}
-static HChar *
+static const HChar *
s390_irgen_MS(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "ms";
}
-static HChar *
+static const HChar *
s390_irgen_MSY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "msy";
}
-static HChar *
+static const HChar *
s390_irgen_MSG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "msg";
}
-static HChar *
+static const HChar *
s390_irgen_MSGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "msgf";
}
-static HChar *
+static const HChar *
s390_irgen_MSFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "msfi";
}
-static HChar *
+static const HChar *
s390_irgen_MSGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "msgfi";
}
-static HChar *
+static const HChar *
s390_irgen_OR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "or";
}
-static HChar *
+static const HChar *
s390_irgen_OGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "ogr";
}
-static HChar *
+static const HChar *
s390_irgen_ORK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "ork";
}
-static HChar *
+static const HChar *
s390_irgen_OGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "ogrk";
}
-static HChar *
+static const HChar *
s390_irgen_O(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "o";
}
-static HChar *
+static const HChar *
s390_irgen_OY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "oy";
}
-static HChar *
+static const HChar *
s390_irgen_OG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "og";
}
-static HChar *
+static const HChar *
s390_irgen_OI(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "oi";
}
-static HChar *
+static const HChar *
s390_irgen_OIY(UChar i2, IRTemp op1addr)
{
IRTemp op1 = newTemp(Ity_I8);
return "oiy";
}
-static HChar *
+static const HChar *
s390_irgen_OIHF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "oihf";
}
-static HChar *
+static const HChar *
s390_irgen_OIHH(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "oihh";
}
-static HChar *
+static const HChar *
s390_irgen_OIHL(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "oihl";
}
-static HChar *
+static const HChar *
s390_irgen_OILF(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "oilf";
}
-static HChar *
+static const HChar *
s390_irgen_OILH(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "oilh";
}
-static HChar *
+static const HChar *
s390_irgen_OILL(UChar r1, UShort i2)
{
IRTemp op1 = newTemp(Ity_I16);
return "oill";
}
-static HChar *
+static const HChar *
s390_irgen_PFD(void)
{
return "pfd";
}
-static HChar *
+static const HChar *
s390_irgen_PFDRL(void)
{
return "pfdrl";
}
-static HChar *
+static const HChar *
s390_irgen_RLL(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp amount = newTemp(Ity_I64);
return "rll";
}
-static HChar *
+static const HChar *
s390_irgen_RLLG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp amount = newTemp(Ity_I64);
return "rllg";
}
-static HChar *
+static const HChar *
s390_irgen_RNSBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5)
{
UChar from;
return "rnsbg";
}
-static HChar *
+static const HChar *
s390_irgen_RXSBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5)
{
UChar from;
return "rxsbg";
}
-static HChar *
+static const HChar *
s390_irgen_ROSBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5)
{
UChar from;
return "rosbg";
}
-static HChar *
+static const HChar *
s390_irgen_RISBG(UChar r1, UChar r2, UChar i3, UChar i4, UChar i5)
{
UChar from;
return "risbg";
}
-static HChar *
+static const HChar *
s390_irgen_SAR(UChar r1, UChar r2)
{
put_ar_w0(r1, get_gpr_w1(r2));
return "sar";
}
-static HChar *
+static const HChar *
s390_irgen_SLDA(UChar r1, IRTemp op2addr)
{
IRTemp p1 = newTemp(Ity_I64);
return "slda";
}
-static HChar *
+static const HChar *
s390_irgen_SLDL(UChar r1, IRTemp op2addr)
{
IRTemp p1 = newTemp(Ity_I64);
return "sldl";
}
-static HChar *
+static const HChar *
s390_irgen_SLA(UChar r1, IRTemp op2addr)
{
IRTemp uop = newTemp(Ity_I32);
return "sla";
}
-static HChar *
+static const HChar *
s390_irgen_SLAK(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp uop = newTemp(Ity_I32);
return "slak";
}
-static HChar *
+static const HChar *
s390_irgen_SLAG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp uop = newTemp(Ity_I64);
return "slag";
}
-static HChar *
+static const HChar *
s390_irgen_SLL(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r1), unop(Iop_64to8,
return "sll";
}
-static HChar *
+static const HChar *
s390_irgen_SLLK(UChar r1, UChar r3, IRTemp op2addr)
{
put_gpr_w1(r1, binop(Iop_Shl32, get_gpr_w1(r3), unop(Iop_64to8,
return "sllk";
}
-static HChar *
+static const HChar *
s390_irgen_SLLG(UChar r1, UChar r3, IRTemp op2addr)
{
put_gpr_dw0(r1, binop(Iop_Shl64, get_gpr_dw0(r3), unop(Iop_64to8,
return "sllg";
}
-static HChar *
+static const HChar *
s390_irgen_SRDA(UChar r1, IRTemp op2addr)
{
IRTemp p1 = newTemp(Ity_I64);
return "srda";
}
-static HChar *
+static const HChar *
s390_irgen_SRDL(UChar r1, IRTemp op2addr)
{
IRTemp p1 = newTemp(Ity_I64);
return "srdl";
}
-static HChar *
+static const HChar *
s390_irgen_SRA(UChar r1, IRTemp op2addr)
{
IRTemp result = newTemp(Ity_I32);
return "sra";
}
-static HChar *
+static const HChar *
s390_irgen_SRAK(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp result = newTemp(Ity_I32);
return "srak";
}
-static HChar *
+static const HChar *
s390_irgen_SRAG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp result = newTemp(Ity_I64);
return "srag";
}
-static HChar *
+static const HChar *
s390_irgen_SRL(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_I32);
return "srl";
}
-static HChar *
+static const HChar *
s390_irgen_SRLK(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_I32);
return "srlk";
}
-static HChar *
+static const HChar *
s390_irgen_SRLG(UChar r1, UChar r3, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_I64);
return "srlg";
}
-static HChar *
+static const HChar *
s390_irgen_ST(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_w1(r1));
return "st";
}
-static HChar *
+static const HChar *
s390_irgen_STY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_w1(r1));
return "sty";
}
-static HChar *
+static const HChar *
s390_irgen_STG(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_dw0(r1));
return "stg";
}
-static HChar *
+static const HChar *
s390_irgen_STRL(UChar r1, UInt i2)
{
store(mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)i2 << 1)),
return "strl";
}
-static HChar *
+static const HChar *
s390_irgen_STGRL(UChar r1, UInt i2)
{
store(mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)i2 << 1)),
return "stgrl";
}
-static HChar *
+static const HChar *
s390_irgen_STC(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b7(r1));
return "stc";
}
-static HChar *
+static const HChar *
s390_irgen_STCY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b7(r1));
return "stcy";
}
-static HChar *
+static const HChar *
s390_irgen_STCH(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b3(r1));
return "stch";
}
-static HChar *
+static const HChar *
s390_irgen_STCM(UChar r1, UChar r3, IRTemp op2addr)
{
UChar mask;
return "stcm";
}
-static HChar *
+static const HChar *
s390_irgen_STCMY(UChar r1, UChar r3, IRTemp op2addr)
{
UChar mask;
return "stcmy";
}
-static HChar *
+static const HChar *
s390_irgen_STCMH(UChar r1, UChar r3, IRTemp op2addr)
{
UChar mask;
return "stcmh";
}
-static HChar *
+static const HChar *
s390_irgen_STH(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_hw3(r1));
return "sth";
}
-static HChar *
+static const HChar *
s390_irgen_STHY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_hw3(r1));
return "sthy";
}
-static HChar *
+static const HChar *
s390_irgen_STHRL(UChar r1, UInt i2)
{
store(mkU64(guest_IA_curr_instr + ((ULong)(Long)(Int)i2 << 1)),
return "sthrl";
}
-static HChar *
+static const HChar *
s390_irgen_STHH(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_hw1(r1));
return "sthh";
}
-static HChar *
+static const HChar *
s390_irgen_STFH(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_w0(r1));
return "stfh";
}
-static HChar *
+static const HChar *
s390_irgen_STOC(UChar r1, IRTemp op2addr)
{
/* condition is checked in format handler */
return "stoc";
}
-static HChar *
+static const HChar *
s390_irgen_STOCG(UChar r1, IRTemp op2addr)
{
/* condition is checked in format handler */
return "stocg";
}
-static HChar *
+static const HChar *
s390_irgen_STPQ(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_dw0(r1));
return "stpq";
}
-static HChar *
+static const HChar *
s390_irgen_STRVH(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b7(r1));
return "strvh";
}
-static HChar *
+static const HChar *
s390_irgen_STRV(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b7(r1));
return "strv";
}
-static HChar *
+static const HChar *
s390_irgen_STRVG(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_gpr_b7(r1));
return "strvg";
}
-static HChar *
+static const HChar *
s390_irgen_SR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "sr";
}
-static HChar *
+static const HChar *
s390_irgen_SGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "sgr";
}
-static HChar *
+static const HChar *
s390_irgen_SGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "sgfr";
}
-static HChar *
+static const HChar *
s390_irgen_SRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "srk";
}
-static HChar *
+static const HChar *
s390_irgen_SGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "sgrk";
}
-static HChar *
+static const HChar *
s390_irgen_S(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "s";
}
-static HChar *
+static const HChar *
s390_irgen_SY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "sy";
}
-static HChar *
+static const HChar *
s390_irgen_SG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "sg";
}
-static HChar *
+static const HChar *
s390_irgen_SGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "sgf";
}
-static HChar *
+static const HChar *
s390_irgen_SH(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "sh";
}
-static HChar *
+static const HChar *
s390_irgen_SHY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "shy";
}
-static HChar *
+static const HChar *
s390_irgen_SHHHR(UChar r3 __attribute__((unused)), UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "shhhr";
}
-static HChar *
+static const HChar *
s390_irgen_SHHLR(UChar r3 __attribute__((unused)), UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "shhlr";
}
-static HChar *
+static const HChar *
s390_irgen_SLR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "slr";
}
-static HChar *
+static const HChar *
s390_irgen_SLGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "slgr";
}
-static HChar *
+static const HChar *
s390_irgen_SLGFR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "slgfr";
}
-static HChar *
+static const HChar *
s390_irgen_SLRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "slrk";
}
-static HChar *
+static const HChar *
s390_irgen_SLGRK(UChar r3, UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "slgrk";
}
-static HChar *
+static const HChar *
s390_irgen_SL(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "sl";
}
-static HChar *
+static const HChar *
s390_irgen_SLY(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "sly";
}
-static HChar *
+static const HChar *
s390_irgen_SLG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "slg";
}
-static HChar *
+static const HChar *
s390_irgen_SLGF(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "slgf";
}
-static HChar *
+static const HChar *
s390_irgen_SLFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I32);
return "slfi";
}
-static HChar *
+static const HChar *
s390_irgen_SLGFI(UChar r1, UInt i2)
{
IRTemp op1 = newTemp(Ity_I64);
return "slgfi";
}
-static HChar *
+static const HChar *
s390_irgen_SLHHHR(UChar r3 __attribute__((unused)), UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "slhhhr";
}
-static HChar *
+static const HChar *
s390_irgen_SLHHLR(UChar r3 __attribute__((unused)), UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "slhhlr";
}
-static HChar *
+static const HChar *
s390_irgen_SLBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I32);
return "slbr";
}
-static HChar *
+static const HChar *
s390_irgen_SLBGR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_I64);
return "slbgr";
}
-static HChar *
+static const HChar *
s390_irgen_SLB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I32);
return "slb";
}
-static HChar *
+static const HChar *
s390_irgen_SLBG(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_I64);
return "slbg";
}
-static HChar *
+static const HChar *
s390_irgen_SVC(UChar i)
{
IRTemp sysno = newTemp(Ity_I64);
return "svc";
}
-static HChar *
+static const HChar *
s390_irgen_TM(UChar i2, IRTemp op1addr)
{
UChar mask;
return "tm";
}
-static HChar *
+static const HChar *
s390_irgen_TMY(UChar i2, IRTemp op1addr)
{
UChar mask;
return "tmy";
}
-static HChar *
+static const HChar *
s390_irgen_TMHH(UChar r1, UShort i2)
{
UShort mask;
return "tmhh";
}
-static HChar *
+static const HChar *
s390_irgen_TMHL(UChar r1, UShort i2)
{
UShort mask;
return "tmhl";
}
-static HChar *
+static const HChar *
s390_irgen_TMLH(UChar r1, UShort i2)
{
UShort mask;
return "tmlh";
}
-static HChar *
+static const HChar *
s390_irgen_TMLL(UChar r1, UShort i2)
{
UShort mask;
return "tmll";
}
-static HChar *
+static const HChar *
s390_irgen_EFPC(UChar r1)
{
put_gpr_w1(r1, get_fpc_w0());
return "efpc";
}
-static HChar *
+static const HChar *
s390_irgen_LER(UChar r1, UChar r2)
{
put_fpr_w0(r1, get_fpr_w0(r2));
return "ler";
}
-static HChar *
+static const HChar *
s390_irgen_LDR(UChar r1, UChar r2)
{
put_fpr_dw0(r1, get_fpr_dw0(r2));
return "ldr";
}
-static HChar *
+static const HChar *
s390_irgen_LXR(UChar r1, UChar r2)
{
put_fpr_dw0(r1, get_fpr_dw0(r2));
return "lxr";
}
-static HChar *
+static const HChar *
s390_irgen_LE(UChar r1, IRTemp op2addr)
{
put_fpr_w0(r1, load(Ity_F32, mkexpr(op2addr)));
return "le";
}
-static HChar *
+static const HChar *
s390_irgen_LD(UChar r1, IRTemp op2addr)
{
put_fpr_dw0(r1, load(Ity_F64, mkexpr(op2addr)));
return "ld";
}
-static HChar *
+static const HChar *
s390_irgen_LEY(UChar r1, IRTemp op2addr)
{
put_fpr_w0(r1, load(Ity_F32, mkexpr(op2addr)));
return "ley";
}
-static HChar *
+static const HChar *
s390_irgen_LDY(UChar r1, IRTemp op2addr)
{
put_fpr_dw0(r1, load(Ity_F64, mkexpr(op2addr)));
return "ldy";
}
-static HChar *
+static const HChar *
s390_irgen_LFPC(IRTemp op2addr)
{
put_fpc_w0(load(Ity_I32, mkexpr(op2addr)));
return "lfpc";
}
-static HChar *
+static const HChar *
s390_irgen_LZER(UChar r1)
{
put_fpr_w0(r1, mkF32i(0x0));
return "lzer";
}
-static HChar *
+static const HChar *
s390_irgen_LZDR(UChar r1)
{
put_fpr_dw0(r1, mkF64i(0x0));
return "lzdr";
}
-static HChar *
+static const HChar *
s390_irgen_LZXR(UChar r1)
{
put_fpr_dw0(r1, mkF64i(0x0));
return "lzxr";
}
-static HChar *
+static const HChar *
s390_irgen_SRNM(IRTemp op2addr)
{
UInt input_mask, fpc_mask;
return "srnm";
}
-static HChar *
+static const HChar *
s390_irgen_SRNMB(IRTemp op2addr)
{
UInt input_mask, fpc_mask;
}
-static HChar *
+static const HChar *
s390_irgen_SFPC(UChar r1)
{
put_fpc_w0(get_gpr_w1(r1));
return "sfpc";
}
-static HChar *
+static const HChar *
s390_irgen_STE(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_fpr_w0(r1));
return "ste";
}
-static HChar *
+static const HChar *
s390_irgen_STD(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_fpr_dw0(r1));
return "std";
}
-static HChar *
+static const HChar *
s390_irgen_STEY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_fpr_w0(r1));
return "stey";
}
-static HChar *
+static const HChar *
s390_irgen_STDY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), get_fpr_dw0(r1));
return "stdy";
}
-static HChar *
+static const HChar *
s390_irgen_STFPC(IRTemp op2addr)
{
store(mkexpr(op2addr), get_fpc_w0());
return "stfpc";
}
-static HChar *
+static const HChar *
s390_irgen_AEBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F32);
return "aebr";
}
-static HChar *
+static const HChar *
s390_irgen_ADBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F64);
return "adbr";
}
-static HChar *
+static const HChar *
s390_irgen_AEB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F32);
return "aeb";
}
-static HChar *
+static const HChar *
s390_irgen_ADB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F64);
return "adb";
}
-static HChar *
+static const HChar *
s390_irgen_CEFBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cefbr";
}
-static HChar *
+static const HChar *
s390_irgen_CDFBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
return "cdfbr";
}
-static HChar *
+static const HChar *
s390_irgen_CEGBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cegbr";
}
-static HChar *
+static const HChar *
s390_irgen_CDGBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cdgbr";
}
-static HChar *
+static const HChar *
s390_irgen_CELFBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "celfbr";
}
-static HChar *
+static const HChar *
s390_irgen_CDLFBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
return "cdlfbr";
}
-static HChar *
+static const HChar *
s390_irgen_CELGBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "celgbr";
}
-static HChar *
+static const HChar *
s390_irgen_CDLGBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cdlgbr";
}
-static HChar *
+static const HChar *
s390_irgen_CLFEBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "clfebr";
}
-static HChar *
+static const HChar *
s390_irgen_CLFDBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "clfdbr";
}
-static HChar *
+static const HChar *
s390_irgen_CLGEBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "clgebr";
}
-static HChar *
+static const HChar *
s390_irgen_CLGDBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "clgdbr";
}
-static HChar *
+static const HChar *
s390_irgen_CFEBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cfebr";
}
-static HChar *
+static const HChar *
s390_irgen_CFDBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cfdbr";
}
-static HChar *
+static const HChar *
s390_irgen_CGEBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cgebr";
}
-static HChar *
+static const HChar *
s390_irgen_CGDBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cgdbr";
}
-static HChar *
+static const HChar *
s390_irgen_DEBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F32);
return "debr";
}
-static HChar *
+static const HChar *
s390_irgen_DDBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F64);
return "ddbr";
}
-static HChar *
+static const HChar *
s390_irgen_DEB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F32);
return "deb";
}
-static HChar *
+static const HChar *
s390_irgen_DDB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F64);
return "ddb";
}
-static HChar *
+static const HChar *
s390_irgen_LTEBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F32);
return "ltebr";
}
-static HChar *
+static const HChar *
s390_irgen_LTDBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "ltdbr";
}
-static HChar *
+static const HChar *
s390_irgen_LCEBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F32);
return "lcebr";
}
-static HChar *
+static const HChar *
s390_irgen_LCDBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lcdbr";
}
-static HChar *
+static const HChar *
s390_irgen_LDEBR(UChar r1, UChar r2)
{
IRTemp op = newTemp(Ity_F32);
return "ldebr";
}
-static HChar *
+static const HChar *
s390_irgen_LDEB(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_F32);
return "ldeb";
}
-static HChar *
+static const HChar *
s390_irgen_LEDBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "ledbr";
}
-static HChar *
+static const HChar *
s390_irgen_LTDTR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_D64);
return "ltdtr";
}
-static HChar *
+static const HChar *
s390_irgen_MEEBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F32);
return "meebr";
}
-static HChar *
+static const HChar *
s390_irgen_MDBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F64);
return "mdbr";
}
-static HChar *
+static const HChar *
s390_irgen_MEEB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F32);
return "meeb";
}
-static HChar *
+static const HChar *
s390_irgen_MDB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F64);
return "mdb";
}
-static HChar *
+static const HChar *
s390_irgen_SEBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F32);
return "sebr";
}
-static HChar *
+static const HChar *
s390_irgen_SDBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F64);
return "sdbr";
}
-static HChar *
+static const HChar *
s390_irgen_SEB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F32);
return "seb";
}
-static HChar *
+static const HChar *
s390_irgen_SDB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F64);
return "sdb";
}
-static HChar *
+static const HChar *
s390_irgen_ADTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
return (m4 == 0) ? "adtr" : "adtra";
}
-static HChar *
+static const HChar *
s390_irgen_DDTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
return (m4 == 0) ? "ddtr" : "ddtra";
}
-static HChar *
+static const HChar *
s390_irgen_MDTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
return (m4 == 0) ? "mdtr" : "mdtra";
}
-static HChar *
+static const HChar *
s390_irgen_SDTRA(UChar r3, UChar m4, UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_D64);
}
-static HChar *
+static const HChar *
s390_irgen_CLC(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I64);
return "clc";
}
-static HChar *
+static const HChar *
s390_irgen_CLCL(UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
return "clcl";
}
-static HChar *
+static const HChar *
s390_irgen_CLCLE(UChar r1, UChar r3, IRTemp pad2)
{
IRTemp addr1, addr3, addr1_load, addr3_load, len1, len3, single1, single3;
last_execute_target = 0;
}
-static HChar *
+static const HChar *
s390_irgen_EX(UChar r1, IRTemp addr2)
{
switch(last_execute_target & 0xff00000000000000ULL) {
return "ex";
}
-static HChar *
+static const HChar *
s390_irgen_EXRL(UChar r1, UInt offset)
{
IRTemp addr = newTemp(Ity_I64);
return "exrl";
}
-static HChar *
+static const HChar *
s390_irgen_IPM(UChar r1)
{
// As long as we dont support SPM, lets just assume 0 as program mask
}
-static HChar *
+static const HChar *
s390_irgen_SRST(UChar r1, UChar r2)
{
IRTemp address = newTemp(Ity_I64);
return "srst";
}
-static HChar *
+static const HChar *
s390_irgen_CLST(UChar r1, UChar r2)
{
IRTemp address1 = newTemp(Ity_I64);
} while (reg != (r3 + 1));
}
-static HChar *
+static const HChar *
s390_irgen_LM(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_load_multiple_32bit(r1, r3, op2addr);
return "lm";
}
-static HChar *
+static const HChar *
s390_irgen_LMY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_load_multiple_32bit(r1, r3, op2addr);
return "lmy";
}
-static HChar *
+static const HChar *
s390_irgen_LMH(UChar r1, UChar r3, IRTemp op2addr)
{
UChar reg;
return "lmh";
}
-static HChar *
+static const HChar *
s390_irgen_LMG(UChar r1, UChar r3, IRTemp op2addr)
{
UChar reg;
} while( reg != (r3 + 1));
}
-static HChar *
+static const HChar *
s390_irgen_STM(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_store_multiple_32bit(r1, r3, op2addr);
return "stm";
}
-static HChar *
+static const HChar *
s390_irgen_STMY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_store_multiple_32bit(r1, r3, op2addr);
return "stmy";
}
-static HChar *
+static const HChar *
s390_irgen_STMH(UChar r1, UChar r3, IRTemp op2addr)
{
UChar reg;
return "stmh";
}
-static HChar *
+static const HChar *
s390_irgen_STMG(UChar r1, UChar r3, IRTemp op2addr)
{
UChar reg;
put_counter_dw0(mkU64(0));
}
-static HChar *
+static const HChar *
s390_irgen_XC(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I32);
s390_disasm(ENC3(MNM, UDLB, UDXB), "xc", d, length, b, d, 0, b);
}
-static HChar *
+static const HChar *
s390_irgen_NC(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I32);
return "nc";
}
-static HChar *
+static const HChar *
s390_irgen_OC(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I32);
}
-static HChar *
+static const HChar *
s390_irgen_MVC(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I64);
return "mvc";
}
-static HChar *
+static const HChar *
s390_irgen_MVCL(UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
}
-static HChar *
+static const HChar *
s390_irgen_MVCLE(UChar r1, UChar r3, IRTemp pad2)
{
IRTemp addr1, addr3, addr3_load, len1, len3, single;
return "mvcle";
}
-static HChar *
+static const HChar *
s390_irgen_MVST(UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
put_gpr_dw0(r1 + 1, unop(Iop_128to64, mkexpr(result))); // quotient
}
-static HChar *
+static const HChar *
s390_irgen_DR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "dr";
}
-static HChar *
+static const HChar *
s390_irgen_D(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "d";
}
-static HChar *
+static const HChar *
s390_irgen_DLR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I32);
return "dlr";
}
-static HChar *
+static const HChar *
s390_irgen_DL(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I32);
return "dl";
}
-static HChar *
+static const HChar *
s390_irgen_DLG(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "dlg";
}
-static HChar *
+static const HChar *
s390_irgen_DLGR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "dlgr";
}
-static HChar *
+static const HChar *
s390_irgen_DSGR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "dsgr";
}
-static HChar *
+static const HChar *
s390_irgen_DSG(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
return "dsg";
}
-static HChar *
+static const HChar *
s390_irgen_DSGFR(UChar r1, UChar r2)
{
IRTemp op2 = newTemp(Ity_I64);
return "dsgfr";
}
-static HChar *
+static const HChar *
s390_irgen_DSGF(UChar r1, IRTemp op2addr)
{
IRTemp op2 = newTemp(Ity_I64);
} while (reg != (r3 + 1));
}
-static HChar *
+static const HChar *
s390_irgen_LAM(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_load_ar_multiple(r1, r3, op2addr);
return "lam";
}
-static HChar *
+static const HChar *
s390_irgen_LAMY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_load_ar_multiple(r1, r3, op2addr);
} while (reg != (r3 + 1));
}
-static HChar *
+static const HChar *
s390_irgen_STAM(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_store_ar_multiple(r1, r3, op2addr);
return "stam";
}
-static HChar *
+static const HChar *
s390_irgen_STAMY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_store_ar_multiple(r1, r3, op2addr);
yield_if(mkexpr(nequal));
}
-static HChar *
+static const HChar *
s390_irgen_CS(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_cas_32(r1, r3, op2addr);
return "cs";
}
-static HChar *
+static const HChar *
s390_irgen_CSY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_cas_32(r1, r3, op2addr);
return "csy";
}
-static HChar *
+static const HChar *
s390_irgen_CSG(UChar r1, UChar r3, IRTemp op2addr)
{
IRCAS *cas;
yield_if(mkexpr(nequal));
}
-static HChar *
+static const HChar *
s390_irgen_CDS(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_cdas_32(r1, r3, op2addr);
return "cds";
}
-static HChar *
+static const HChar *
s390_irgen_CDSY(UChar r1, UChar r3, IRTemp op2addr)
{
s390_irgen_cdas_32(r1, r3, op2addr);
return "cdsy";
}
-static HChar *
+static const HChar *
s390_irgen_CDSG(UChar r1, UChar r3, IRTemp op2addr)
{
IRCAS *cas;
/* Binary floating point */
-static HChar *
+static const HChar *
s390_irgen_AXBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F128);
return binop(Iop_Or32, mkexpr(cc0), binop(Iop_Shl32, mkexpr(cc1), mkU8(1)));
}
-static HChar *
+static const HChar *
s390_irgen_CEBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F32);
return "cebr";
}
-static HChar *
+static const HChar *
s390_irgen_CDBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F64);
return "cdbr";
}
-static HChar *
+static const HChar *
s390_irgen_CXBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F128);
return "cxbr";
}
-static HChar *
+static const HChar *
s390_irgen_CEB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F32);
return "ceb";
}
-static HChar *
+static const HChar *
s390_irgen_CDB(UChar r1, IRTemp op2addr)
{
IRTemp op1 = newTemp(Ity_F64);
return "cdb";
}
-static HChar *
+static const HChar *
s390_irgen_CXFBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
return "cxfbr";
}
-static HChar *
+static const HChar *
s390_irgen_CXLFBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
}
-static HChar *
+static const HChar *
s390_irgen_CXGBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
return "cxgbr";
}
-static HChar *
+static const HChar *
s390_irgen_CXLGBR(UChar m3 __attribute__((unused)),
UChar m4 __attribute__((unused)), UChar r1, UChar r2)
{
return "cxlgbr";
}
-static HChar *
+static const HChar *
s390_irgen_CFXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cfxbr";
}
-static HChar *
+static const HChar *
s390_irgen_CLFXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
}
-static HChar *
+static const HChar *
s390_irgen_CGXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "cgxbr";
}
-static HChar *
+static const HChar *
s390_irgen_CLGXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "clgxbr";
}
-static HChar *
+static const HChar *
s390_irgen_DXBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F128);
return "dxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LTXBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F128);
return "ltxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LCXBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F128);
return "lcxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LXDBR(UChar r1, UChar r2)
{
IRTemp op = newTemp(Ity_F64);
return "lxdbr";
}
-static HChar *
+static const HChar *
s390_irgen_LXEBR(UChar r1, UChar r2)
{
IRTemp op = newTemp(Ity_F32);
return "lxebr";
}
-static HChar *
+static const HChar *
s390_irgen_LXDB(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_F64);
return "lxdb";
}
-static HChar *
+static const HChar *
s390_irgen_LXEB(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_F32);
return "lxeb";
}
-static HChar *
+static const HChar *
s390_irgen_LNEBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F32);
return "lnebr";
}
-static HChar *
+static const HChar *
s390_irgen_LNDBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lndbr";
}
-static HChar *
+static const HChar *
s390_irgen_LNXBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F128);
return "lnxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LPEBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F32);
return "lpebr";
}
-static HChar *
+static const HChar *
s390_irgen_LPDBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lpdbr";
}
-static HChar *
+static const HChar *
s390_irgen_LPXBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F128);
return "lpxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LDXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "ldxbr";
}
-static HChar *
+static const HChar *
s390_irgen_LEXBR(UChar m3, UChar m4 __attribute__((unused)),
UChar r1, UChar r2)
{
return "lexbr";
}
-static HChar *
+static const HChar *
s390_irgen_MXBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F128);
return "mxbr";
}
-static HChar *
+static const HChar *
s390_irgen_MAEBR(UChar r1, UChar r3, UChar r2)
{
IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
return "maebr";
}
-static HChar *
+static const HChar *
s390_irgen_MADBR(UChar r1, UChar r3, UChar r2)
{
IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
return "madbr";
}
-static HChar *
+static const HChar *
s390_irgen_MAEB(UChar r3, IRTemp op2addr, UChar r1)
{
IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
return "maeb";
}
-static HChar *
+static const HChar *
s390_irgen_MADB(UChar r3, IRTemp op2addr, UChar r1)
{
IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
return "madb";
}
-static HChar *
+static const HChar *
s390_irgen_MSEBR(UChar r1, UChar r3, UChar r2)
{
IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
return "msebr";
}
-static HChar *
+static const HChar *
s390_irgen_MSDBR(UChar r1, UChar r3, UChar r2)
{
IRTemp rounding_mode = encode_bfp_rounding_mode(S390_BFP_ROUND_PER_FPC);
return "msdbr";
}
-static HChar *
+static const HChar *
s390_irgen_MSEB(UChar r3, IRTemp op2addr, UChar r1)
{
IRExpr *op2 = load(Ity_F32, mkexpr(op2addr));
return "mseb";
}
-static HChar *
+static const HChar *
s390_irgen_MSDB(UChar r3, IRTemp op2addr, UChar r1)
{
IRExpr *op2 = load(Ity_F64, mkexpr(op2addr));
return "msdb";
}
-static HChar *
+static const HChar *
s390_irgen_SQEBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F32);
return "sqebr";
}
-static HChar *
+static const HChar *
s390_irgen_SQDBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "sqdbr";
}
-static HChar *
+static const HChar *
s390_irgen_SQXBR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F128);
return "sqxbr";
}
-static HChar *
+static const HChar *
s390_irgen_SQEB(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_F32);
return "sqeb";
}
-static HChar *
+static const HChar *
s390_irgen_SQDB(UChar r1, IRTemp op2addr)
{
IRTemp op = newTemp(Ity_F64);
return "sqdb";
}
-static HChar *
+static const HChar *
s390_irgen_SXBR(UChar r1, UChar r2)
{
IRTemp op1 = newTemp(Ity_F128);
return "sxbr";
}
-static HChar *
+static const HChar *
s390_irgen_TCEB(UChar r1, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_F32);
return "tceb";
}
-static HChar *
+static const HChar *
s390_irgen_TCDB(UChar r1, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_F64);
return "tcdb";
}
-static HChar *
+static const HChar *
s390_irgen_TCXB(UChar r1, IRTemp op2addr)
{
IRTemp value = newTemp(Ity_F128);
return "tcxb";
}
-static HChar *
+static const HChar *
s390_irgen_LCDFR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lcdfr";
}
-static HChar *
+static const HChar *
s390_irgen_LNDFR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lndfr";
}
-static HChar *
+static const HChar *
s390_irgen_LPDFR(UChar r1, UChar r2)
{
IRTemp result = newTemp(Ity_F64);
return "lpdfr";
}
-static HChar *
+static const HChar *
s390_irgen_LDGR(UChar r1, UChar r2)
{
put_fpr_dw0(r1, unop(Iop_ReinterpI64asF64, get_gpr_dw0(r2)));
return "ldgr";
}
-static HChar *
+static const HChar *
s390_irgen_LGDR(UChar r1, UChar r2)
{
put_gpr_dw0(r1, unop(Iop_ReinterpF64asI64, get_fpr_dw0(r2)));
}
-static HChar *
+static const HChar *
s390_irgen_CPSDR(UChar r3, UChar r1, UChar r2)
{
IRTemp sign = newTemp(Ity_I64);
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CVB(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, s390_call_cvb(load(Ity_I64, mkexpr(op2addr))));
return "cvb";
}
-static HChar *
+static const HChar *
s390_irgen_CVBY(UChar r1, IRTemp op2addr)
{
put_gpr_w1(r1, s390_call_cvb(load(Ity_I64, mkexpr(op2addr))));
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CVD(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), s390_call_cvd(unop(Iop_32Uto64, get_gpr_w1(r1))));
return "cvd";
}
-static HChar *
+static const HChar *
s390_irgen_CVDY(UChar r1, IRTemp op2addr)
{
store(mkexpr(op2addr), s390_call_cvd(get_gpr_w1(r1)));
return "cvdy";
}
-static HChar *
+static const HChar *
s390_irgen_FLOGR(UChar r1, UChar r2)
{
IRTemp input = newTemp(Ity_I64);
return "flogr";
}
-static HChar *
+static const HChar *
s390_irgen_STCK(IRTemp op2addr)
{
IRDirty *d;
return "stck";
}
-static HChar *
+static const HChar *
s390_irgen_STCKF(IRTemp op2addr)
{
if (! s390_host_has_stckf) {
return "stckf";
}
-static HChar *
+static const HChar *
s390_irgen_STCKE(IRTemp op2addr)
{
IRDirty *d;
return "stcke";
}
-static HChar *
+static const HChar *
s390_irgen_STFLE(IRTemp op2addr)
{
if (! s390_host_has_stfle) {
return "stfle";
}
-static HChar *
+static const HChar *
s390_irgen_CKSM(UChar r1,UChar r2)
{
IRTemp addr = newTemp(Ity_I64);
return "cksm";
}
-static HChar *
+static const HChar *
s390_irgen_TROO(UChar m3, UChar r1, UChar r2)
{
IRTemp src_addr, des_addr, tab_addr, src_len, test_byte;
return "troo";
}
-static HChar *
+static const HChar *
s390_irgen_TRTO(UChar m3, UChar r1, UChar r2)
{
IRTemp src_addr, des_addr, tab_addr, src_len, test_byte;
return "trto";
}
-static HChar *
+static const HChar *
s390_irgen_TROT(UChar m3, UChar r1, UChar r2)
{
IRTemp src_addr, des_addr, tab_addr, src_len, test_byte;
return "trot";
}
-static HChar *
+static const HChar *
s390_irgen_TRTT(UChar m3, UChar r1, UChar r2)
{
IRTemp src_addr, des_addr, tab_addr, src_len, test_byte;
return "trtt";
}
-static HChar *
+static const HChar *
s390_irgen_TR(UChar length, IRTemp start1, IRTemp start2)
{
IRTemp len = newTemp(Ity_I64);
return "tr";
}
-static HChar *
+static const HChar *
s390_irgen_TRE(UChar r1,UChar r2)
{
IRTemp src_addr, tab_addr, src_len, test_byte;
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CU21(UChar m3, UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CU24(UChar m3, UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CU42(UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
return call;
}
-static HChar *
+static const HChar *
s390_irgen_CU41(UChar r1, UChar r2)
{
IRTemp addr1 = newTemp(Ity_I64);
iterate();
}
-static HChar *
+static const HChar *
s390_irgen_CU12(UChar m3, UChar r1, UChar r2)
{
s390_irgen_cu12_cu14(m3, r1, r2, /* is_cu12 = */ 1);
return "cu12";
}
-static HChar *
+static const HChar *
s390_irgen_CU14(UChar m3, UChar r1, UChar r2)
{
s390_irgen_cu12_cu14(m3, r1, r2, /* is_cu12 = */ 0);
return call;
}
-static HChar *
+static const HChar *
s390_irgen_ECAG(UChar r1, UChar r3 __attribute__((unused)), IRTemp op2addr)
{
if (! s390_host_has_gie) {