aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/e500.igen
diff options
context:
space:
mode:
Diffstat (limited to 'sim/ppc/e500.igen')
-rw-r--r--sim/ppc/e500.igen1274
1 files changed, 637 insertions, 637 deletions
diff --git a/sim/ppc/e500.igen b/sim/ppc/e500.igen
index 5b9c553..dce1865 100644
--- a/sim/ppc/e500.igen
+++ b/sim/ppc/e500.igen
@@ -37,8 +37,8 @@
} while (0)
# Schedule an instruction that takes 2 integer register and produces a special purpose output register plus an integer output register
-void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr, const unsigned32 out_mask, const unsigned32 in_mask, const unsigned nSPR
- const unsigned32 int_mask = out_mask | in_mask;
+void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr, const uint32_t out_mask, const uint32_t in_mask, const unsigned nSPR
+ const uint32_t int_mask = out_mask | in_mask;
model_busy *busy_ptr;
while ((model_ptr->int_busy & int_mask) != 0 || model_ptr->spr_busy[nSPR] != 0) {
@@ -60,23 +60,23 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
# SPE Modulo Fractional Multiplication handling support
#
-:function:e500::unsigned64:ev_multiply16_smf:signed16 a, signed16 b, int *sat
- signed32 a32 = a, b32 = b, rv32;
+:function:e500::uint64_t:ev_multiply16_smf:int16_t a, int16_t b, int *sat
+ int32_t a32 = a, b32 = b, rv32;
rv32 = a * b;
*sat = (rv32 & (3<<30)) == (3<<30);
- return (signed64)rv32 << 1;
+ return (int64_t)rv32 << 1;
-:function:e500::unsigned64:ev_multiply32_smf:signed32 a, signed32 b, int *sat
- signed64 rv64, a64 = a, b64 = b;
+:function:e500::uint64_t:ev_multiply32_smf:int32_t a, int32_t b, int *sat
+ int64_t rv64, a64 = a, b64 = b;
rv64 = a64 * b64;
- *sat = (rv64 & ((signed64)3<<62)) == ((signed64)3<<62);
+ *sat = (rv64 & ((int64_t)3<<62)) == ((int64_t)3<<62);
/* Loses top sign bit. */
return rv64 << 1;
#
# SPE Saturation handling support
#
-:function:e500::signed32:ev_multiply16_ssf:signed16 a, signed16 b, int *sat
- signed32 rv32;
+:function:e500::int32_t:ev_multiply16_ssf:int16_t a, int16_t b, int *sat
+ int32_t rv32;
if (a == 0xffff8000 && b == 0xffff8000)
{
rv32 = 0x7fffffffL;
@@ -85,15 +85,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
}
else
{
- signed32 a32 = a, b32 = b;
+ int32_t a32 = a, b32 = b;
rv32 = a * b;
* sat = (rv32 & (3<<30)) == (3<<30);
- return (signed64)rv32 << 1;
+ return (int64_t)rv32 << 1;
}
-:function:e500::signed64:ev_multiply32_ssf:signed32 a, signed32 b, int *sat
- signed64 rv64;
+:function:e500::int64_t:ev_multiply32_ssf:int32_t a, int32_t b, int *sat
+ int64_t rv64;
if (a == 0x80000000 && b == 0x80000000)
{
rv64 = 0x7fffffffffffffffLL;
@@ -102,9 +102,9 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
}
else
{
- signed64 a64 = a, b64 = b;
+ int64_t a64 = a, b64 = b;
rv64 = a64 * b64;
- *sat = (rv64 & ((signed64)3<<62)) == ((signed64)3<<62);
+ *sat = (rv64 & ((int64_t)3<<62)) == ((int64_t)3<<62);
/* Loses top sign bit. */
return rv64 << 1;
}
@@ -114,21 +114,21 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
:function:e500::void:ev_check_guard:sim_fpu *a, int fg, int fx, cpu *processor
- unsigned64 guard;
+ uint64_t guard;
guard = sim_fpu_guard(a, 0);
if (guard & 1)
EV_SET_SPEFSCR_BITS(fg);
if (guard & ~1)
EV_SET_SPEFSCR_BITS(fx);
-:function:e500::void:booke_sim_fpu_32to:sim_fpu *dst, unsigned32 packed
+:function:e500::void:booke_sim_fpu_32to:sim_fpu *dst, uint32_t packed
sim_fpu_32to (dst, packed);
/* Set normally unused fields to allow booke arithmetic. */
if (dst->class == sim_fpu_class_infinity)
{
dst->normal_exp = 128;
- dst->fraction = ((unsigned64)1 << 60);
+ dst->fraction = ((uint64_t)1 << 60);
}
else if (dst->class == sim_fpu_class_qnan
|| dst->class == sim_fpu_class_snan)
@@ -136,7 +136,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
dst->normal_exp = 128;
/* This is set, but without the implicit bit, so we have to or
in the implicit bit. */
- dst->fraction |= ((unsigned64)1 << 60);
+ dst->fraction |= ((uint64_t)1 << 60);
}
:function:e500::int:booke_sim_fpu_add:sim_fpu *d, sim_fpu *a, sim_fpu *b, int inv, int over, int under, cpu *processor
@@ -207,9 +207,9 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
return invalid_operand || overflow_result || underflow_result;
-:function:e500::unsigned32:ev_fs_add:unsigned32 aa, unsigned32 bb, int inv, int over, int under, int fg, int fx, cpu *processor
+:function:e500::uint32_t:ev_fs_add:uint32_t aa, uint32_t bb, int inv, int over, int under, int fg, int fx, cpu *processor
sim_fpu a, b, d;
- unsigned32 w;
+ uint32_t w;
int exception;
booke_sim_fpu_32to (&a, aa);
@@ -223,9 +223,9 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
ev_check_guard(&d, fg, fx, processor);
return w;
-:function:e500::unsigned32:ev_fs_sub:unsigned32 aa, unsigned32 bb, int inv, int over, int under, int fg, int fx, cpu *processor
+:function:e500::uint32_t:ev_fs_sub:uint32_t aa, uint32_t bb, int inv, int over, int under, int fg, int fx, cpu *processor
sim_fpu a, b, d;
- unsigned32 w;
+ uint32_t w;
int exception;
booke_sim_fpu_32to (&a, aa);
@@ -244,7 +244,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
# sim_fpu_exp leaves the normal_exp field undefined for Inf and NaN.
# The booke algorithms require exp values, so we fake them here.
# fixme: It also apparently does the same for zero, but should not.
-:function:e500::unsigned32:booke_sim_fpu_exp:sim_fpu *x
+:function:e500::uint32_t:booke_sim_fpu_exp:sim_fpu *x
int y = sim_fpu_is (x);
if (y == SIM_FPU_IS_PZERO || y == SIM_FPU_IS_NZERO)
return 0;
@@ -254,9 +254,9 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
else
return sim_fpu_exp (x);
-:function:e500::unsigned32:ev_fs_mul:unsigned32 aa, unsigned32 bb, int inv, int over, int under, int fg, int fx, cpu *processor
+:function:e500::uint32_t:ev_fs_mul:uint32_t aa, uint32_t bb, int inv, int over, int under, int fg, int fx, cpu *processor
sim_fpu a, b, d;
- unsigned32 w;
+ uint32_t w;
int sa, sb, ea, eb, ei;
sim_fpu_32to (&a, aa);
sim_fpu_32to (&b, bb);
@@ -296,9 +296,9 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
}
return w;
-:function:e500::unsigned32:ev_fs_div:unsigned32 aa, unsigned32 bb, int inv, int over, int under, int dbz, int fg, int fx, cpu *processor
+:function:e500::uint32_t:ev_fs_div:uint32_t aa, uint32_t bb, int inv, int over, int under, int dbz, int fg, int fx, cpu *processor
sim_fpu a, b, d;
- unsigned32 w;
+ uint32_t w;
int sa, sb, ea, eb, ei;
sim_fpu_32to (&a, aa);
@@ -381,7 +381,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
0.4,6.RS,11.RA,16.RB,21.512:X:e500:evaddw %RS,%RA,%RB:Vector Add Word
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh + *rAh;
w2 = *rB + *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -389,7 +389,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.IMM,16.RB,21.514:X:e500:evaddiw %RS,%RB,%IMM:Vector Add Immediate Word
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh + IMM;
w2 = *rB + IMM;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -397,7 +397,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.516:X:e500:evsubfw %RS,%RA,%RB:Vector Subtract from Word
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh - *rAh;
w2 = *rB - *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -405,7 +405,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.IMM,16.RB,21.518:X:e500:evsubifw %RS,%RB,%IMM:Vector Subtract Immediate from Word
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh - IMM;
w2 = *rB - IMM;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -413,7 +413,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.520:X:e500:evabs %RS,%RA:Vector Absolute Value
- signed32 w1, w2;
+ int32_t w1, w2;
w1 = *rAh;
if (w1 < 0 && w1 != 0x80000000)
w1 = -w1;
@@ -424,7 +424,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.521:X:e500:evneg %RS,%RA:Vector Negate
- signed32 w1, w2;
+ int32_t w1, w2;
w1 = *rAh;
/* the negative most negative number is the most negative number */
if (w1 != 0x80000000)
@@ -436,7 +436,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.522:X:e500:evextsb %RS,%RA:Vector Extend Signed Byte
- unsigned64 w1, w2;
+ uint64_t w1, w2;
w1 = *rAh & 0xff;
if (w1 & 0x80)
w1 |= 0xffffff00;
@@ -447,7 +447,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK , 0);
0.4,6.RS,11.RA,16.0,21.523:X:e500:evextsb %RS,%RA:Vector Extend Signed Half Word
- unsigned64 w1, w2;
+ uint64_t w1, w2;
w1 = *rAh & 0xffff;
if (w1 & 0x8000)
w1 |= 0xffff0000;
@@ -458,49 +458,49 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.529:X:e500:evand %RS,%RA,%RB:Vector AND
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh & *rAh;
w2 = *rB & *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.535:X:e500:evor %RS,%RA,%RB:Vector OR
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh | *rAh;
w2 = *rB | *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.534:X:e500:evxor %RS,%RA,%RB:Vector XOR
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rBh ^ *rAh;
w2 = *rB ^ *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.542:X:e500:evnand %RS,%RA,%RB:Vector NAND
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = ~(*rBh & *rAh);
w2 = ~(*rB & *rA);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.536:X:e500:evnor %RS,%RA,%RB:Vector NOR
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = ~(*rBh | *rAh);
w2 = ~(*rB | *rA);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.537:X:e500:eveqv %RS,%RA,%RB:Vector Equivalent
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = (~*rBh) ^ *rAh;
w2 = (~*rB) ^ *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.530:X:e500:evandc %RS,%RA,%RB:Vector AND with Compliment
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = (~*rBh) & *rAh;
w2 = (~*rB) & *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -508,7 +508,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.539:X:e500:evorc %RS,%RA,%RB:Vector OR with Compliment
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = (~*rBh) | *rAh;
w2 = (~*rB) | *rA;
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -516,76 +516,76 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.552:X:e500:evrlw %RS,%RA,%RB:Vector Rotate Left Word
- unsigned32 nh, nl, w1, w2;
+ uint32_t nh, nl, w1, w2;
nh = *rBh & 0x1f;
nl = *rB & 0x1f;
- w1 = ((unsigned32)*rAh) << nh | ((unsigned32)*rAh) >> (32 - nh);
- w2 = ((unsigned32)*rA) << nl | ((unsigned32)*rA) >> (32 - nl);
+ w1 = ((uint32_t)*rAh) << nh | ((uint32_t)*rAh) >> (32 - nh);
+ w2 = ((uint32_t)*rA) << nl | ((uint32_t)*rA) >> (32 - nl);
EV_SET_REG2(*rSh, *rS, w1, w2);
//printf("evrlw: nh %d nl %d *rSh = %08x; *rS = %08x\n", nh, nl, *rSh, *rS);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.UIMM,21.554:X:e500:evrlwi %RS,%RA,%UIMM:Vector Rotate Left Word Immediate
- unsigned32 w1, w2, imm;
- imm = (unsigned32)UIMM;
- w1 = ((unsigned32)*rAh) << imm | ((unsigned32)*rAh) >> (32 - imm);
- w2 = ((unsigned32)*rA) << imm | ((unsigned32)*rA) >> (32 - imm);
+ uint32_t w1, w2, imm;
+ imm = (uint32_t)UIMM;
+ w1 = ((uint32_t)*rAh) << imm | ((uint32_t)*rAh) >> (32 - imm);
+ w2 = ((uint32_t)*rA) << imm | ((uint32_t)*rA) >> (32 - imm);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.548:X:e500:evslw %RS,%RA,%RB:Vector Shift Left Word
- unsigned32 nh, nl, w1, w2;
+ uint32_t nh, nl, w1, w2;
nh = *rBh & 0x1f;
nl = *rB & 0x1f;
- w1 = ((unsigned32)*rAh) << nh;
- w2 = ((unsigned32)*rA) << nl;
+ w1 = ((uint32_t)*rAh) << nh;
+ w2 = ((uint32_t)*rA) << nl;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.UIMM,21.550:X:e500:evslwi %RS,%RA,%UIMM:Vector Shift Left Word Immediate
- unsigned32 w1, w2, imm = UIMM;
- w1 = ((unsigned32)*rAh) << imm;
- w2 = ((unsigned32)*rA) << imm;
+ uint32_t w1, w2, imm = UIMM;
+ w1 = ((uint32_t)*rAh) << imm;
+ w2 = ((uint32_t)*rA) << imm;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.545:X:e500:evsrws %RS,%RA,%RB:Vector Shift Right Word Signed
- signed32 w1, w2;
- unsigned32 nh, nl;
+ int32_t w1, w2;
+ uint32_t nh, nl;
nh = *rBh & 0x1f;
nl = *rB & 0x1f;
- w1 = ((signed32)*rAh) >> nh;
- w2 = ((signed32)*rA) >> nl;
+ w1 = ((int32_t)*rAh) >> nh;
+ w2 = ((int32_t)*rA) >> nl;
EV_SET_REG2(*rSh, *rS, w1, w2);
//printf("evsrws: nh %d nl %d *rSh = %08x; *rS = %08x\n", nh, nl, *rSh, *rS);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.544:X:e500:evsrwu %RS,%RA,%RB:Vector Shift Right Word Unsigned
- unsigned32 w1, w2, nh, nl;
+ uint32_t w1, w2, nh, nl;
nh = *rBh & 0x1f;
nl = *rB & 0x1f;
- w1 = ((unsigned32)*rAh) >> nh;
- w2 = ((unsigned32)*rA) >> nl;
+ w1 = ((uint32_t)*rAh) >> nh;
+ w2 = ((uint32_t)*rA) >> nl;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.UIMM,21.547:X:e500:evsrwis %RS,%RA,%UIMM:Vector Shift Right Word Immediate Signed
- signed32 w1, w2;
- unsigned32 imm = UIMM;
- w1 = ((signed32)*rAh) >> imm;
- w2 = ((signed32)*rA) >> imm;
+ int32_t w1, w2;
+ uint32_t imm = UIMM;
+ w1 = ((int32_t)*rAh) >> imm;
+ w2 = ((int32_t)*rA) >> imm;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.UIMM,21.546:X:e500:evsrwiu %RS,%RA,%UIMM:Vector Shift Right Word Immediate Unsigned
- unsigned32 w1, w2, imm = UIMM;
- w1 = ((unsigned32)*rAh) >> imm;
- w2 = ((unsigned32)*rA) >> imm;
+ uint32_t w1, w2, imm = UIMM;
+ w1 = ((uint32_t)*rAh) >> imm;
+ w2 = ((uint32_t)*rA) >> imm;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.525:X:e500:evcntlzw %RS,%RA:Vector Count Leading Zeros Word
- unsigned32 w1, w2, mask, c1, c2;
+ uint32_t w1, w2, mask, c1, c2;
for (c1 = 0, mask = 0x80000000, w1 = *rAh;
!(w1 & mask) && mask != 0; mask >>= 1)
c1++;
@@ -596,7 +596,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.526:X:e500:evcntlsw %RS,%RA:Vector Count Leading Sign Bits Word
- unsigned32 w1, w2, mask, sign_bit, c1, c2;
+ uint32_t w1, w2, mask, sign_bit, c1, c2;
for (c1 = 0, mask = 0x80000000, w1 = *rAh, sign_bit = w1 & mask;
((w1 & mask) == sign_bit) && mask != 0;
mask >>= 1, sign_bit >>= 1)
@@ -609,43 +609,43 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.524:X:e500:evrndw %RS,%RA:Vector Round Word
- unsigned32 w1, w2;
- w1 = ((unsigned32)*rAh + 0x8000) & 0xffff0000;
- w2 = ((unsigned32)*rA + 0x8000) & 0xffff0000;
+ uint32_t w1, w2;
+ w1 = ((uint32_t)*rAh + 0x8000) & 0xffff0000;
+ w2 = ((uint32_t)*rA + 0x8000) & 0xffff0000;
EV_SET_REG2(*rSh, *rS, w1, w2);
//printf("evrndw: *rSh = %08x; *rS = %08x\n", *rSh, *rS);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.556:X:e500:evmergehi %RS,%RA,%RB:Vector Merge Hi
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rAh;
w2 = *rBh;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.557:X:e500:evmergelo %RS,%RA,%RB:Vector Merge Low
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rA;
w2 = *rB;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.559:X:e500:evmergelohi %RS,%RA,%RB:Vector Merge Low Hi
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rA;
w2 = *rBh;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.558:X:e500:evmergehilo %RS,%RA,%RB:Vector Merge Hi Low
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rAh;
w2 = *rB;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.SIMM,16.0,21.553:X:e500:evsplati %RS,%SIMM:Vector Splat Immediate
- unsigned32 w;
+ uint32_t w;
w = SIMM & 0x1f;
if (w & 0x10)
w |= 0xffffffe0;
@@ -653,13 +653,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, 0, 0);
0.4,6.RS,11.SIMM,16.0,21.555:X:e500:evsplatfi %RS,%SIMM:Vector Splat Fractional Immediate
- unsigned32 w;
+ uint32_t w;
w = SIMM << 27;
EV_SET_REG2(*rSh, *rS, w, w);
PPC_INSN_INT(RS_BITMASK, 0, 0);
0.4,6.BF,9.0,11.RA,16.RB,21.561:X:e500:evcmpgts %BF,%RA,%RB:Vector Compare Greater Than Signed
- signed32 ah, al, bh, bl;
+ int32_t ah, al, bh, bl;
int w, ch, cl;
ah = *rAh;
al = *rA;
@@ -678,7 +678,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.BF,9.0,11.RA,16.RB,21.560:X:e500:evcmpgtu %BF,%RA,%RB:Vector Compare Greater Than Unsigned
- unsigned32 ah, al, bh, bl;
+ uint32_t ah, al, bh, bl;
int w, ch, cl;
ah = *rAh;
al = *rA;
@@ -697,7 +697,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.BF,9.0,11.RA,16.RB,21.563:X:e500:evcmplts %BF,%RA,%RB:Vector Compare Less Than Signed
- signed32 ah, al, bh, bl;
+ int32_t ah, al, bh, bl;
int w, ch, cl;
ah = *rAh;
al = *rA;
@@ -716,7 +716,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.BF,9.0,11.RA,16.RB,21.562:X:e500:evcmpltu %BF,%RA,%RB:Vector Compare Less Than Unsigned
- unsigned32 ah, al, bh, bl;
+ uint32_t ah, al, bh, bl;
int w, ch, cl;
ah = *rAh;
al = *rA;
@@ -735,7 +735,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.BF,9.0,11.RA,16.RB,21.564:X:e500:evcmpeq %BF,%RA,%RB:Vector Compare Equal
- unsigned32 ah, al, bh, bl;
+ uint32_t ah, al, bh, bl;
int w, ch, cl;
ah = *rAh;
al = *rA;
@@ -755,7 +755,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.RS,11.RA,16.RB,21.79,29.CRFS:X:e500:evsel %RS,%RA,%RB,%CRFS:Vector Select
- unsigned32 w1, w2;
+ uint32_t w1, w2;
int cr;
cr = CR_FIELD(CRFS);
if (cr & 8)
@@ -770,7 +770,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.527:X:e500:brinc %RS,%RA,%RB:Bit Reversed Increment
- unsigned32 w1, w2, a, d, mask;
+ uint32_t w1, w2, a, d, mask;
mask = (*rB) & 0xffff;
a = (*rA) & 0xffff;
d = EV_BITREVERSE16(1 + EV_BITREVERSE16(a | ~mask));
@@ -783,14 +783,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
0.4,6.RS,11.RA,16.RB,21.1031:EVX:e500:evmhossf %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Fractional
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int movl, movh;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
tl = ev_multiply16_ssf (al, bl, &movl);
th = ev_multiply16_ssf (ah, bh, &movh);
EV_SET_REG2 (*rSh, *rS, EV_SATURATE (movh, 0x7fffffff, th),
@@ -799,14 +799,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1063:EVX:e500:evmhossfa %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Fractional Accumulate
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int movl, movh;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
tl = ev_multiply16_ssf (al, bl, &movl);
th = ev_multiply16_ssf (ah, bh, &movh);
EV_SET_REG2 (*rSh, *rS, EV_SATURATE (movh, 0x7fffffff, th),
@@ -815,39 +815,39 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1039:EVX:e500:evmhosmf %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Fractional
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int dummy;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
tl = ev_multiply16_smf (al, bl, & dummy);
th = ev_multiply16_smf (ah, bh, & dummy);
EV_SET_REG2 (*rSh, *rS, th, tl);
PPC_INSN_INT (RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1071:EVX:e500:evmhosmfa %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Fractional Accumulate
- signed32 al, ah, bl, bh;
- signed32 tl, th;
+ int32_t al, ah, bl, bh;
+ int32_t tl, th;
int dummy;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
tl = ev_multiply16_smf (al, bl, & dummy);
th = ev_multiply16_smf (ah, bh, & dummy);
EV_SET_REG2_ACC (*rSh, *rS, th, tl);
PPC_INSN_INT (RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1037:EVX:e500:evmhosmi %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Integer
- signed32 al, ah, bl, bh, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ int32_t al, ah, bl, bh, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2(*rSh, *rS, th, tl);
@@ -855,11 +855,11 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1069:EVX:e500:evmhosmia %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Integer Accumulate
- signed32 al, ah, bl, bh, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ int32_t al, ah, bl, bh, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2_ACC(*rSh, *rS, th, tl);
@@ -867,36 +867,36 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1036:EVX:e500:evmhoumi %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Modulo Integer
- unsigned32 al, ah, bl, bh, tl, th;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ uint32_t al, ah, bl, bh, tl, th;
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2(*rSh, *rS, th, tl);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1068:EVX:e500:evmhoumia %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Modulo Integer Accumulate
- unsigned32 al, ah, bl, bh, tl, th;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ uint32_t al, ah, bl, bh, tl, th;
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2_ACC(*rSh, *rS, th, tl);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1027:EVX:e500:evmhessf %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Fractional
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int movl, movh;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
tl = ev_multiply16_ssf (al, bl, &movl);
th = ev_multiply16_ssf (ah, bh, &movh);
EV_SET_REG2 (*rSh, *rS, EV_SATURATE (movh, 0x7fffffff, th),
@@ -905,14 +905,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1059:EVX:e500:evmhessfa %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Fractional Accumulate
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int movl, movh;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
tl = ev_multiply16_ssf (al, bl, &movl);
th = ev_multiply16_ssf (ah, bh, &movh);
EV_SET_REG2_ACC (*rSh, *rS, EV_SATURATE (movh, 0x7fffffff, th),
@@ -921,14 +921,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1035:EVX:e500:evmhesmf %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Fractional
- signed16 al, ah, bl, bh;
- signed64 tl, th;
+ int16_t al, ah, bl, bh;
+ int64_t tl, th;
int movl, movh;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
tl = ev_multiply16_smf (al, bl, &movl);
th = ev_multiply16_smf (ah, bh, &movh);
EV_SET_REG2 (*rSh, *rS, th, tl);
@@ -936,75 +936,75 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1067:EVX:e500:evmhesmfa %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Fractional Accumulate
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
int dummy;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
tl = ev_multiply16_smf (al, bl, & dummy);
th = ev_multiply16_smf (ah, bh, & dummy);
EV_SET_REG2_ACC (*rSh, *rS, th, tl);
PPC_INSN_INT (RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1033:EVX:e500:evmhesmi %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Integer
- signed16 al, ah, bl, bh;
- signed32 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t tl, th;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2 (*rSh, *rS, th, tl);
PPC_INSN_INT (RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1065:EVX:e500:evmhesmia %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Integer Accumulate
- signed32 al, ah, bl, bh, tl, th;
- al = (signed32)(signed16)EV_HIHALF(*rA);
- ah = (signed32)(signed16)EV_HIHALF(*rAh);
- bl = (signed32)(signed16)EV_HIHALF(*rB);
- bh = (signed32)(signed16)EV_HIHALF(*rBh);
+ int32_t al, ah, bl, bh, tl, th;
+ al = (int32_t)(int16_t)EV_HIHALF(*rA);
+ ah = (int32_t)(int16_t)EV_HIHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_HIHALF(*rB);
+ bh = (int32_t)(int16_t)EV_HIHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2_ACC(*rSh, *rS, th, tl);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1032:EVX:e500:evmheumi %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Modulo Integer
- unsigned32 al, ah, bl, bh, tl, th;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ uint32_t al, ah, bl, bh, tl, th;
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2(*rSh, *rS, th, tl);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1064:EVX:e500:evmheumia %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Modulo Integer Accumulate
- unsigned32 al, ah, bl, bh, tl, th;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ uint32_t al, ah, bl, bh, tl, th;
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
tl = al * bl;
th = ah * bh;
EV_SET_REG2_ACC(*rSh, *rS, th, tl);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1287:EVX:e500:evmhossfaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Fractional and Accumulate into Words
- signed16 al, ah, bl, bh;
- signed32 t1, t2;
- signed64 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t t1, t2;
+ int64_t tl, th;
int movl, movh, ovl, ovh;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
t1 = ev_multiply16_ssf (ah, bh, &movh);
t2 = ev_multiply16_ssf (al, bl, &movl);
th = EV_ACCHIGH + EV_SATURATE (movh, 0x7fffffff, t1);
@@ -1017,13 +1017,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1285:EVX:e500:evmhossiaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Integer and Accumulate into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1038,26 +1038,26 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1295:EVX:e500:evmhosmfaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Fractional and Accumulate into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
- t1 = ((signed64)ah * bh) << 1;
- t2 = ((signed64)al * bl) << 1;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
+ t1 = ((int64_t)ah * bh) << 1;
+ t2 = ((int64_t)al * bl) << 1;
th = EV_ACCHIGH + (t1 & 0xffffffff);
tl = EV_ACCLOW + (t2 & 0xffffffff);
EV_SET_REG2_ACC(*rSh, *rS, th & 0xffffffff, tl & 0xffffffff);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1293:EVX:e500:evmhosmiaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Integer and Accumulate into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1068,18 +1068,18 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1284:EVX:e500:evmhousiaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Saturate Integer and Accumulate into Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
- signed64 tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
+ int64_t tl, th;
int ovl, ovh;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
- th = (signed64)EV_ACCHIGH + (signed64)t1;
- tl = (signed64)EV_ACCLOW + (signed64)t2;
+ th = (int64_t)EV_ACCHIGH + (int64_t)t1;
+ tl = (int64_t)EV_ACCLOW + (int64_t)t2;
ovh = EV_SAT_P_U32(th);
ovl = EV_SAT_P_U32(tl);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, th, 0, 0xffffffff, th),
@@ -1090,13 +1090,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1292:EVX:e500:evmhoumiaaw %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Modulo Integer and Accumulate into Words
- unsigned32 al, ah, bl, bh;
- unsigned32 t1, t2;
- signed64 tl, th;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ uint32_t al, ah, bl, bh;
+ uint32_t t1, t2;
+ int64_t tl, th;
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1107,15 +1107,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1283:EVX:e500:evmhessfaaw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Fractional and Accumulate into Words
- signed16 al, ah, bl, bh;
- signed32 t1, t2;
- signed64 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t t1, t2;
+ int64_t tl, th;
int movl, movh, ovl, ovh;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
t1 = ev_multiply16_ssf (ah, bh, &movh);
t2 = ev_multiply16_ssf (al, bl, &movl);
th = EV_ACCHIGH + EV_SATURATE (movh, 0x7fffffff, t1);
@@ -1128,13 +1128,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1281:EVX:e500:evmhessiaaw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Integer and Accumulate into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
- al = (signed32)(signed16)EV_HIHALF(*rA);
- ah = (signed32)(signed16)EV_HIHALF(*rAh);
- bl = (signed32)(signed16)EV_HIHALF(*rB);
- bh = (signed32)(signed16)EV_HIHALF(*rBh);
+ al = (int32_t)(int16_t)EV_HIHALF(*rA);
+ ah = (int32_t)(int16_t)EV_HIHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_HIHALF(*rB);
+ bh = (int32_t)(int16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1149,14 +1149,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1291:EVX:e500:evmhesmfaaw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Fractional and Accumulate into Words
- signed16 al, ah, bl, bh;
- signed32 t1, t2, th, tl;
+ int16_t al, ah, bl, bh;
+ int32_t t1, t2, th, tl;
int dummy;
- al = (signed16)EV_HIHALF(*rA);
- ah = (signed16)EV_HIHALF(*rAh);
- bl = (signed16)EV_HIHALF(*rB);
- bh = (signed16)EV_HIHALF(*rBh);
+ al = (int16_t)EV_HIHALF(*rA);
+ ah = (int16_t)EV_HIHALF(*rAh);
+ bl = (int16_t)EV_HIHALF(*rB);
+ bh = (int16_t)EV_HIHALF(*rBh);
t1 = ev_multiply16_smf (ah, bh, &dummy);
t2 = ev_multiply16_smf (al, bl, &dummy);
th = EV_ACCHIGH + t1;
@@ -1165,12 +1165,12 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1289:EVX:e500:evmhesmiaaw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Integer and Accumulate into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_HIHALF(*rA);
- ah = (signed32)(signed16)EV_HIHALF(*rAh);
- bl = (signed32)(signed16)EV_HIHALF(*rB);
- bh = (signed32)(signed16)EV_HIHALF(*rBh);
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_HIHALF(*rA);
+ ah = (int32_t)(int16_t)EV_HIHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_HIHALF(*rB);
+ bh = (int32_t)(int16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1179,18 +1179,18 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1280:EVX:e500:evmheusiaaw %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Saturate Integer and Accumulate into Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
- signed64 tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
+ int64_t tl, th;
int ovl, ovh;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
- th = (signed64)EV_ACCHIGH + (signed64)t1;
- tl = (signed64)EV_ACCLOW + (signed64)t2;
+ th = (int64_t)EV_ACCHIGH + (int64_t)t1;
+ tl = (int64_t)EV_ACCLOW + (int64_t)t2;
ovh = EV_SAT_P_U32(th);
ovl = EV_SAT_P_U32(tl);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, th, 0, 0xffffffff, th),
@@ -1199,13 +1199,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1288:EVX:e500:evmheumiaaw %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Modulo Integer and Accumulate into Words
- unsigned32 al, ah, bl, bh;
- unsigned32 t1, t2;
- unsigned64 tl, th;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ uint32_t al, ah, bl, bh;
+ uint32_t t1, t2;
+ uint64_t tl, th;
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH + t1;
@@ -1215,15 +1215,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.1415:EVX:e500:evmhossfanw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Fractional and Accumulate Negative into Words
- signed16 al, ah, bl, bh;
- signed32 t1, t2;
- signed64 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t t1, t2;
+ int64_t tl, th;
int movl, movh, ovl, ovh;
- al = (signed16) EV_LOHALF (*rA);
- ah = (signed16) EV_LOHALF (*rAh);
- bl = (signed16) EV_LOHALF (*rB);
- bh = (signed16) EV_LOHALF (*rBh);
+ al = (int16_t) EV_LOHALF (*rA);
+ ah = (int16_t) EV_LOHALF (*rAh);
+ bl = (int16_t) EV_LOHALF (*rB);
+ bh = (int16_t) EV_LOHALF (*rBh);
t1 = ev_multiply16_ssf (ah, bh, &movh);
t2 = ev_multiply16_ssf (al, bl, &movl);
th = EV_ACCHIGH - EV_SATURATE (movh, 0x7fffffff, t1);
@@ -1236,13 +1236,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1413:EVX:e500:evmhossianw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Saturate Integer and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1256,26 +1256,26 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1423:EVX:e500:evmhosmfanw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Fractional and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
- t1 = ((signed64)ah * bh) << 1;
- t2 = ((signed64)al * bl) << 1;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
+ t1 = ((int64_t)ah * bh) << 1;
+ t2 = ((int64_t)al * bl) << 1;
th = EV_ACCHIGH - (t1 & 0xffffffff);
tl = EV_ACCLOW - (t2 & 0xffffffff);
EV_SET_REG2_ACC(*rSh, *rS, th & 0xffffffff, tl & 0xffffffff);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1421:EVX:e500:evmhosmianw %RS,%RA,%RB:Vector Multiply Half Words Odd Signed Modulo Integer and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_LOHALF(*rA);
- ah = (signed32)(signed16)EV_LOHALF(*rAh);
- bl = (signed32)(signed16)EV_LOHALF(*rB);
- bh = (signed32)(signed16)EV_LOHALF(*rBh);
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_LOHALF(*rA);
+ ah = (int32_t)(int16_t)EV_LOHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_LOHALF(*rB);
+ bh = (int32_t)(int16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1284,18 +1284,18 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1412:EVX:e500:evmhousianw %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Saturate Integer and Accumulate Negative into Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
- signed64 tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
+ int64_t tl, th;
int ovl, ovh;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
- th = (signed64)EV_ACCHIGH - (signed64)t1;
- tl = (signed64)EV_ACCLOW - (signed64)t2;
+ th = (int64_t)EV_ACCHIGH - (int64_t)t1;
+ tl = (int64_t)EV_ACCLOW - (int64_t)t2;
ovl = EV_SAT_P_U32(tl);
ovh = EV_SAT_P_U32(th);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, th, 0, 0xffffffff, th),
@@ -1306,13 +1306,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1420:EVX:e500:evmhoumianw %RS,%RA,%RB:Vector Multiply Half Words Odd Unsigned Modulo Integer and Accumulate Negative into Words
- unsigned32 al, ah, bl, bh;
- unsigned32 t1, t2;
- unsigned64 tl, th;
- al = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_LOHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_LOHALF(*rBh);
+ uint32_t al, ah, bl, bh;
+ uint32_t t1, t2;
+ uint64_t tl, th;
+ al = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_LOHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_LOHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1321,15 +1321,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1411:EVX:e500:evmhessfanw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Fractional and Accumulate Negative into Words
- signed16 al, ah, bl, bh;
- signed32 t1, t2;
- signed64 tl, th;
+ int16_t al, ah, bl, bh;
+ int32_t t1, t2;
+ int64_t tl, th;
int movl, movh, ovl, ovh;
- al = (signed16) EV_HIHALF (*rA);
- ah = (signed16) EV_HIHALF (*rAh);
- bl = (signed16) EV_HIHALF (*rB);
- bh = (signed16) EV_HIHALF (*rBh);
+ al = (int16_t) EV_HIHALF (*rA);
+ ah = (int16_t) EV_HIHALF (*rAh);
+ bl = (int16_t) EV_HIHALF (*rB);
+ bh = (int16_t) EV_HIHALF (*rBh);
t1 = ev_multiply16_ssf (ah, bh, &movh);
t2 = ev_multiply16_ssf (al, bl, &movl);
th = EV_ACCHIGH - EV_SATURATE (movh, 0x7fffffff, t1);
@@ -1342,13 +1342,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR (RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1409:EVX:e500:evmhessianw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Saturate Integer and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
- al = (signed32)(signed16)EV_HIHALF(*rA);
- ah = (signed32)(signed16)EV_HIHALF(*rAh);
- bl = (signed32)(signed16)EV_HIHALF(*rB);
- bh = (signed32)(signed16)EV_HIHALF(*rBh);
+ al = (int32_t)(int16_t)EV_HIHALF(*rA);
+ ah = (int32_t)(int16_t)EV_HIHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_HIHALF(*rB);
+ bh = (int32_t)(int16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1361,26 +1361,26 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1419:EVX:e500:evmhesmfanw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Fractional and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
- t1 = ((signed64)ah * bh) << 1;
- t2 = ((signed64)al * bl) << 1;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
+ t1 = ((int64_t)ah * bh) << 1;
+ t2 = ((int64_t)al * bl) << 1;
th = EV_ACCHIGH - (t1 & 0xffffffff);
tl = EV_ACCLOW - (t2 & 0xffffffff);
EV_SET_REG2_ACC(*rSh, *rS, th & 0xffffffff, tl & 0xffffffff);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1417:EVX:e500:evmhesmianw %RS,%RA,%RB:Vector Multiply Half Words Even Signed Modulo Integer and Accumulate Negative into Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
- al = (signed32)(signed16)EV_HIHALF(*rA);
- ah = (signed32)(signed16)EV_HIHALF(*rAh);
- bl = (signed32)(signed16)EV_HIHALF(*rB);
- bh = (signed32)(signed16)EV_HIHALF(*rBh);
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
+ al = (int32_t)(int16_t)EV_HIHALF(*rA);
+ ah = (int32_t)(int16_t)EV_HIHALF(*rAh);
+ bl = (int32_t)(int16_t)EV_HIHALF(*rB);
+ bh = (int32_t)(int16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1391,18 +1391,18 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1408:EVX:e500:evmheusianw %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Saturate Integer and Accumulate Negative into Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
- signed64 tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
+ int64_t tl, th;
int ovl, ovh;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
- th = (signed64)EV_ACCHIGH - (signed64)t1;
- tl = (signed64)EV_ACCLOW - (signed64)t2;
+ th = (int64_t)EV_ACCHIGH - (int64_t)t1;
+ tl = (int64_t)EV_ACCLOW - (int64_t)t2;
ovl = EV_SAT_P_U32(tl);
ovh = EV_SAT_P_U32(th);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, th, 0, 0xffffffff, th),
@@ -1413,13 +1413,13 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1416:EVX:e500:evmheumianw %RS,%RA,%RB:Vector Multiply Half Words Even Unsigned Modulo Integer and Accumulate Negative into Words
- unsigned32 al, ah, bl, bh;
- unsigned32 t1, t2;
- unsigned64 tl, th;
- al = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- ah = (unsigned32)(unsigned16)EV_HIHALF(*rAh);
- bl = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- bh = (unsigned32)(unsigned16)EV_HIHALF(*rBh);
+ uint32_t al, ah, bl, bh;
+ uint32_t t1, t2;
+ uint64_t tl, th;
+ al = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ ah = (uint32_t)(uint16_t)EV_HIHALF(*rAh);
+ bl = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ bh = (uint32_t)(uint16_t)EV_HIHALF(*rBh);
t1 = ah * bh;
t2 = al * bl;
th = EV_ACCHIGH - t1;
@@ -1428,66 +1428,66 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1327:EVX:e500:evmhogsmfaa %RS,%RA,%RB:Multiply Half Words Odd Guarded Signed Modulo Fractional and Accumulate
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_LOHALF(*rA);
- b = (signed32)(signed16)EV_LOHALF(*rB);
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_LOHALF(*rA);
+ b = (int32_t)(int16_t)EV_LOHALF(*rB);
t1 = EV_MUL16_SSF(a, b);
- if (t1 & ((unsigned64)1 << 32))
+ if (t1 & ((uint64_t)1 << 32))
t1 |= 0xfffffffe00000000;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1325:EVX:e500:evmhogsmiaa %RS,%RA,%RB:Multiply Half Words Odd Guarded Signed Modulo Integer and Accumulate
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_LOHALF(*rA);
- b = (signed32)(signed16)EV_LOHALF(*rB);
- t1 = (signed64)a * (signed64)b;
- t2 = (signed64)ACC + t1;
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_LOHALF(*rA);
+ b = (int32_t)(int16_t)EV_LOHALF(*rB);
+ t1 = (int64_t)a * (int64_t)b;
+ t2 = (int64_t)ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
//printf("evmhogsmiaa: a %d b %d t1 %qd t2 %qd\n", a, b, t1, t2);
//printf("evmhogsmiaa: ACC = %08x.%08x; *rSh = %08x; *rS = %08x\n", (int)(ACC >> 32), (int)ACC, *rSh, *rS);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1324:EVX:e500:evmhogumiaa %RS,%RA,%RB:Multiply Half Words Odd Guarded Unsigned Modulo Integer and Accumulate
- unsigned32 a, b;
- unsigned64 t1, t2;
- a = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- b = (unsigned32)(unsigned16)EV_LOHALF(*rB);
+ uint32_t a, b;
+ uint64_t t1, t2;
+ a = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ b = (uint32_t)(uint16_t)EV_LOHALF(*rB);
t1 = a * b;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1323:EVX:e500:evmhegsmfaa %RS,%RA,%RB:Multiply Half Words Even Guarded Signed Modulo Fractional and Accumulate
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_HIHALF(*rA);
- b = (signed32)(signed16)EV_HIHALF(*rB);
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_HIHALF(*rA);
+ b = (int32_t)(int16_t)EV_HIHALF(*rB);
t1 = EV_MUL16_SSF(a, b);
- if (t1 & ((unsigned64)1 << 32))
+ if (t1 & ((uint64_t)1 << 32))
t1 |= 0xfffffffe00000000;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1321:EVX:e500:evmhegsmiaa %RS,%RA,%RB:Multiply Half Words Even Guarded Signed Modulo Integer and Accumulate
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_HIHALF(*rA);
- b = (signed32)(signed16)EV_HIHALF(*rB);
- t1 = (signed64)(a * b);
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_HIHALF(*rA);
+ b = (int32_t)(int16_t)EV_HIHALF(*rB);
+ t1 = (int64_t)(a * b);
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1320:EVX:e500:evmhegumiaa %RS,%RA,%RB:Multiply Half Words Even Guarded Unsigned Modulo Integer and Accumulate
- unsigned32 a, b;
- unsigned64 t1, t2;
- a = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- b = (unsigned32)(unsigned16)EV_HIHALF(*rB);
+ uint32_t a, b;
+ uint64_t t1, t2;
+ a = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ b = (uint32_t)(uint16_t)EV_HIHALF(*rB);
t1 = a * b;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
@@ -1495,23 +1495,23 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.1455:EVX:e500:evmhogsmfan %RS,%RA,%RB:Multiply Half Words Odd Guarded Signed Modulo Fractional and Accumulate Negative
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_LOHALF(*rA);
- b = (signed32)(signed16)EV_LOHALF(*rB);
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_LOHALF(*rA);
+ b = (int32_t)(int16_t)EV_LOHALF(*rB);
t1 = EV_MUL16_SSF(a, b);
- if (t1 & ((unsigned64)1 << 32))
+ if (t1 & ((uint64_t)1 << 32))
t1 |= 0xfffffffe00000000;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1453:EVX:e500:evmhogsmian %RS,%RA,%RB:Multiply Half Words Odd Guarded Signed Modulo Integer and Accumulate Negative
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_LOHALF(*rA);
- b = (signed32)(signed16)EV_LOHALF(*rB);
- t1 = (signed64)a * (signed64)b;
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_LOHALF(*rA);
+ b = (int32_t)(int16_t)EV_LOHALF(*rB);
+ t1 = (int64_t)a * (int64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
//printf("evmhogsmian: a %d b %d t1 %qd t2 %qd\n", a, b, t1, t2);
@@ -1519,51 +1519,51 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1452:EVX:e500:evmhogumian %RS,%RA,%RB:Multiply Half Words Odd Guarded Unsigned Modulo Integer and Accumulate Negative
- unsigned32 a, b;
- unsigned64 t1, t2;
- a = (unsigned32)(unsigned16)EV_LOHALF(*rA);
- b = (unsigned32)(unsigned16)EV_LOHALF(*rB);
- t1 = (unsigned64)a * (unsigned64)b;
+ uint32_t a, b;
+ uint64_t t1, t2;
+ a = (uint32_t)(uint16_t)EV_LOHALF(*rA);
+ b = (uint32_t)(uint16_t)EV_LOHALF(*rB);
+ t1 = (uint64_t)a * (uint64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1451:EVX:e500:evmhegsmfan %RS,%RA,%RB:Multiply Half Words Even Guarded Signed Modulo Fractional and Accumulate Negative
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_HIHALF(*rA);
- b = (signed32)(signed16)EV_HIHALF(*rB);
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_HIHALF(*rA);
+ b = (int32_t)(int16_t)EV_HIHALF(*rB);
t1 = EV_MUL16_SSF(a, b);
- if (t1 & ((unsigned64)1 << 32))
+ if (t1 & ((uint64_t)1 << 32))
t1 |= 0xfffffffe00000000;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1449:EVX:e500:evmhegsmian %RS,%RA,%RB:Multiply Half Words Even Guarded Signed Modulo Integer and Accumulate Negative
- signed32 a, b;
- signed64 t1, t2;
- a = (signed32)(signed16)EV_HIHALF(*rA);
- b = (signed32)(signed16)EV_HIHALF(*rB);
- t1 = (signed64)a * (signed64)b;
+ int32_t a, b;
+ int64_t t1, t2;
+ a = (int32_t)(int16_t)EV_HIHALF(*rA);
+ b = (int32_t)(int16_t)EV_HIHALF(*rB);
+ t1 = (int64_t)a * (int64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1448:EVX:e500:evmhegumian %RS,%RA,%RB:Multiply Half Words Even Guarded Unsigned Modulo Integer and Accumulate Negative
- unsigned32 a, b;
- unsigned64 t1, t2;
- a = (unsigned32)(unsigned16)EV_HIHALF(*rA);
- b = (unsigned32)(unsigned16)EV_HIHALF(*rB);
- t1 = (unsigned64)a * (unsigned64)b;
+ uint32_t a, b;
+ uint64_t t1, t2;
+ a = (uint32_t)(uint16_t)EV_HIHALF(*rA);
+ b = (uint32_t)(uint16_t)EV_HIHALF(*rB);
+ t1 = (uint64_t)a * (uint64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1095:EVX:e500:evmwhssf %RS,%RA,%RB:Vector Multiply Word High Signed Saturate Fractional
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int movl, movh;
al = *rA;
ah = *rAh;
@@ -1577,8 +1577,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1127:EVX:e500:evmwhssfa %RS,%RA,%RB:Vector Multiply Word High Signed Saturate Fractional and Accumulate
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int movl, movh;
al = *rA;
ah = *rAh;
@@ -1592,8 +1592,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1103:EVX:e500:evmwhsmf %RS,%RA,%RB:Vector Multiply Word High Signed Modulo Fractional
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
@@ -1604,8 +1604,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1135:EVX:e500:evmwhsmfa %RS,%RA,%RB:Vector Multiply Word High Signed Modulo Fractional and Accumulate
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
@@ -1616,57 +1616,57 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1101:EVX:e500:evmwhsmi %RS,%RA,%RB:Vector Multiply Word High Signed Modulo Integer
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)al * (signed64)bl;
- t2 = (signed64)ah * (signed64)bh;
+ t1 = (int64_t)al * (int64_t)bl;
+ t2 = (int64_t)ah * (int64_t)bh;
EV_SET_REG2(*rSh, *rS, t2 >> 32, t1 >> 32);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1133:EVX:e500:evmwhsmia %RS,%RA,%RB:Vector Multiply Word High Signed Modulo Integer and Accumulate
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)al * (signed64)bl;
- t2 = (signed64)ah * (signed64)bh;
+ t1 = (int64_t)al * (int64_t)bl;
+ t2 = (int64_t)ah * (int64_t)bh;
EV_SET_REG2_ACC(*rSh, *rS, t2 >> 32, t1 >> 32);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1100:EVX:e500:evmwhumi %RS,%RA,%RB:Vector Multiply Word High Unsigned Modulo Integer
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)al * (unsigned64)bl;
- t2 = (unsigned64)ah * (unsigned64)bh;
+ t1 = (uint64_t)al * (uint64_t)bl;
+ t2 = (uint64_t)ah * (uint64_t)bh;
EV_SET_REG2(*rSh, *rS, t2 >> 32, t1 >> 32);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1132:EVX:e500:evmwhumia %RS,%RA,%RB:Vector Multiply Word High Unsigned Modulo Integer and Accumulate
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)al * (unsigned64)bl;
- t2 = (unsigned64)ah * (unsigned64)bh;
+ t1 = (uint64_t)al * (uint64_t)bl;
+ t2 = (uint64_t)ah * (uint64_t)bh;
EV_SET_REG2_ACC(*rSh, *rS, t2 >> 32, t1 >> 32);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1091:EVX:e500:evmwlssf %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Fractional
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int movl, movh;
al = *rA;
ah = *rAh;
@@ -1680,8 +1680,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1123:EVX:e500:evmwlssfa %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Fractional and Accumulate
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int movl, movh;
al = *rA;
ah = *rAh;
@@ -1695,8 +1695,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1099:EVX:e500:evmwlsmf %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Fractional
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
@@ -1707,8 +1707,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1131:EVX:e500:evmwlsmfa %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Fractional and Accumulate
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
@@ -1719,33 +1719,33 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1096:EVX:e500:evmwlumi %RS,%RA,%RB:Vector Multiply Word Low Unsigned Modulo Integer
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)al * (unsigned64)bl;
- t2 = (unsigned64)ah * (unsigned64)bh;
+ t1 = (uint64_t)al * (uint64_t)bl;
+ t2 = (uint64_t)ah * (uint64_t)bh;
EV_SET_REG2(*rSh, *rS, t2, t1);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1128:EVX:e500:evmwlumia %RS,%RA,%RB:Vector Multiply Word Low Unsigned Modulo Integer and Accumulate
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)al * (unsigned64)bl;
- t2 = (unsigned64)ah * (unsigned64)bh;
+ t1 = (uint64_t)al * (uint64_t)bl;
+ t2 = (uint64_t)ah * (uint64_t)bh;
EV_SET_REG2_ACC(*rSh, *rS, t2, t1);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1347:EVX:e500:evmwlssfaaw %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Fractional and Accumulate in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int movl, movh, ovl, ovh;
al = *rA;
ah = *rAh;
@@ -1763,15 +1763,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1345:EVX:e500:evmwlssiaaw %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Integer and Accumulate in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)ah * (signed64)bh;
- t2 = (signed64)al * (signed64)bl;
+ t1 = (int64_t)ah * (int64_t)bh;
+ t2 = (int64_t)al * (int64_t)bl;
th = EV_ACCHIGH + (t1 & 0xffffffff);
tl = EV_ACCLOW + (t2 & 0xffffffff);
ovh = EV_SAT_P_S32(th);
@@ -1782,8 +1782,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1355:EVX:e500:evmwlsmfaaw %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Fractional and Accumulate in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int mov;
al = *rA;
ah = *rAh;
@@ -1796,14 +1796,14 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1353:EVX:e500:evmwlsmiaaw %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Integer and Accumulate in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)ah * (signed64)bh;
- t2 = (signed64)al * (signed64)bl;
+ t1 = (int64_t)ah * (int64_t)bh;
+ t2 = (int64_t)al * (int64_t)bl;
EV_SET_REG2_ACC(*rSh, *rS, EV_ACCHIGH + (t1 & 0xffffffff),
EV_ACCLOW + (t2 & 0xffffffff));
//printf("evmwlsmiaaw: al %d ah %d bl %d bh %d t1 %qd t2 %qd\n", al, ah, bl, bh, t1, t2);
@@ -1811,15 +1811,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1344:EVX:e500:evmwlusiaaw %RS,%RA,%RB:Vector Multiply Word Low Unsigned Saturate Integer and Accumulate in Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2, tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2, tl, th;
int ovl, ovh;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)ah * (unsigned64)bh;
- t2 = (unsigned64)al * (unsigned64)bl;
+ t1 = (uint64_t)ah * (uint64_t)bh;
+ t2 = (uint64_t)al * (uint64_t)bl;
th = EV_ACCHIGH + (t1 & 0xffffffff);
tl = EV_ACCLOW + (t2 & 0xffffffff);
ovh = (th >> 32);
@@ -1830,22 +1830,22 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1352:EVX:e500:evmwlumiaaw %RS,%RA,%RB:Vector Multiply Word Low Unsigned Modulo Integer and Accumulate in Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)ah * (unsigned64)bh;
- t2 = (unsigned64)al * (unsigned64)bl;
+ t1 = (uint64_t)ah * (uint64_t)bh;
+ t2 = (uint64_t)al * (uint64_t)bl;
EV_SET_REG2_ACC(*rSh, *rS, EV_ACCHIGH + (t1 & 0xffffffff),
EV_ACCLOW + (t2 & 0xffffffff));
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1475:EVX:e500:evmwlssfanw %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Fractional and Accumulate Negative in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int movl, movh, ovl, ovh;
al = *rA;
ah = *rAh;
@@ -1863,15 +1863,15 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1473:EVX:e500:evmwlssianw %RS,%RA,%RB:Vector Multiply Word Low Signed Saturate Integer and Accumulate Negative in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2, tl, th;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2, tl, th;
int ovl, ovh;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)ah * (signed64)bh;
- t2 = (signed64)al * (signed64)bl;
+ t1 = (int64_t)ah * (int64_t)bh;
+ t2 = (int64_t)al * (int64_t)bl;
th = EV_ACCHIGH - (t1 & 0xffffffff);
tl = EV_ACCLOW - (t2 & 0xffffffff);
ovh = EV_SAT_P_S32(th);
@@ -1882,8 +1882,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1483:EVX:e500:evmwlsmfanw %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Fractional and Accumulate Negative in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
int mov;
al = *rA;
ah = *rAh;
@@ -1896,28 +1896,28 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1481:EVX:e500:evmwlsmianw %RS,%RA,%RB:Vector Multiply Word Low Signed Modulo Integer and Accumulate Negative in Words
- signed32 al, ah, bl, bh;
- signed64 t1, t2;
+ int32_t al, ah, bl, bh;
+ int64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (signed64)ah * (signed64)bh;
- t2 = (signed64)al * (signed64)bl;
+ t1 = (int64_t)ah * (int64_t)bh;
+ t2 = (int64_t)al * (int64_t)bl;
EV_SET_REG2_ACC(*rSh, *rS, EV_ACCHIGH - (t1 & 0xffffffff),
EV_ACCLOW - (t2 & 0xffffffff));
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1472:EVX:e500:evmwlusianw %RS,%RA,%RB:Vector Multiply Word Low Unsigned Saturate Integer and Accumulate Negative in Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2, tl, th;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2, tl, th;
int ovl, ovh;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)ah * (unsigned64)bh;
- t2 = (unsigned64)al * (unsigned64)bl;
+ t1 = (uint64_t)ah * (uint64_t)bh;
+ t2 = (uint64_t)al * (uint64_t)bl;
th = EV_ACCHIGH - (t1 & 0xffffffff);
tl = EV_ACCLOW - (t2 & 0xffffffff);
ovh = (th >> 32);
@@ -1930,22 +1930,22 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1480:EVX:e500:evmwlumianw %RS,%RA,%RB:Vector Multiply Word Low Unsigned Modulo Integer and Accumulate Negative in Words
- unsigned32 al, ah, bl, bh;
- unsigned64 t1, t2;
+ uint32_t al, ah, bl, bh;
+ uint64_t t1, t2;
al = *rA;
ah = *rAh;
bl = *rB;
bh = *rBh;
- t1 = (unsigned64)ah * (unsigned64)bh;
- t2 = (unsigned64)al * (unsigned64)bl;
+ t1 = (uint64_t)ah * (uint64_t)bh;
+ t2 = (uint64_t)al * (uint64_t)bl;
EV_SET_REG2_ACC(*rSh, *rS, EV_ACCHIGH - (t1 & 0xffffffff),
EV_ACCLOW - (t2 & 0xffffffff));
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1107:EVX:e500:evmwssf %RS,%RA,%RB:Vector Multiply Word Signed Saturate Fractional
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
@@ -1955,8 +1955,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1139:EVX:e500:evmwssfa %RS,%RA,%RB:Vector Multiply Word Signed Saturate Fractional and Accumulate
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
@@ -1966,8 +1966,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1115:EVX:e500:evmwsmf %RS,%RA,%RB:Vector Multiply Word Signed Modulo Fractional
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
@@ -1976,8 +1976,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1147:EVX:e500:evmwsmfa %RS,%RA,%RB:Vector Multiply Word Signed Modulo Fractional and Accumulate
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
@@ -1986,49 +1986,49 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1113:EVX:e500:evmwsmi %RS,%RA,%RB:Vector Multiply Word Signed Modulo Integer
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
- t = (signed64)a * (signed64)b;
+ t = (int64_t)a * (int64_t)b;
EV_SET_REG1(*rSh, *rS, t);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1145:EVX:e500:evmwsmia %RS,%RA,%RB:Vector Multiply Word Signed Modulo Integer and Accumulate
- signed32 a, b;
- signed64 t;
+ int32_t a, b;
+ int64_t t;
int movl;
a = *rA;
b = *rB;
- t = (signed64)a * (signed64)b;
+ t = (int64_t)a * (int64_t)b;
EV_SET_REG1_ACC(*rSh, *rS, t);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1112:EVX:e500:evmwumi %RS,%RA,%RB:Vector Multiply Word Unigned Modulo Integer
- unsigned32 a, b;
- unsigned64 t;
+ uint32_t a, b;
+ uint64_t t;
int movl;
a = *rA;
b = *rB;
- t = (signed64)a * (signed64)b;
+ t = (int64_t)a * (int64_t)b;
EV_SET_REG1(*rSh, *rS, t);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1144:EVX:e500:evmwumia %RS,%RA,%RB:Vector Multiply Word Unigned Modulo Integer and Accumulate
- unsigned32 a, b;
- unsigned64 t;
+ uint32_t a, b;
+ uint64_t t;
int movl;
a = *rA;
b = *rB;
- t = (signed64)a * (signed64)b;
+ t = (int64_t)a * (int64_t)b;
EV_SET_REG1_ACC(*rSh, *rS, t);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1363:EVX:e500:evmwssfaa %RS,%RA,%RB:Vector Multiply Word Signed Saturate Fractional Add and Accumulate
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
int movl;
a = *rA;
b = *rB;
@@ -2039,8 +2039,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1371:EVX:e500:evmwsmfaa %RS,%RA,%RB:Vector Multiply Word Signed Modulo Fractional Add and Accumulate
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
int movl;
a = *rA;
b = *rB;
@@ -2050,29 +2050,29 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1369:EVX:e500:evmwsmiaa %RS,%RA,%RB:Vector Multiply Word Signed Modulo Integer And and Accumulate
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
a = *rA;
b = *rB;
- t1 = (signed64)a * (signed64)b;
+ t1 = (int64_t)a * (int64_t)b;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1368:EVX:e500:evmwumiaa %RS,%RA,%RB:Vector Multiply Word Unsigned Modulo Integer Add and Accumulate
- unsigned64 t1, t2;
- unsigned32 a, b;
+ uint64_t t1, t2;
+ uint32_t a, b;
a = *rA;
b = *rB;
- t1 = (unsigned64)a * (unsigned64)b;
+ t1 = (uint64_t)a * (uint64_t)b;
t2 = ACC + t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1491:EVX:e500:evmwssfan %RS,%RA,%RB:Vector Multiply Word Signed Saturate Fractional and Accumulate Negative
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
int movl;
a = *rA;
b = *rB;
@@ -2083,8 +2083,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.1499:EVX:e500:evmwsmfan %RS,%RA,%RB:Vector Multiply Word Signed Modulo Fractional and Accumulate Negative
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
int movl;
a = *rA;
b = *rB;
@@ -2094,61 +2094,61 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1497:EVX:e500:evmwsmian %RS,%RA,%RB:Vector Multiply Word Signed Modulo Integer and Accumulate Negative
- signed64 t1, t2;
- signed32 a, b;
+ int64_t t1, t2;
+ int32_t a, b;
a = *rA;
b = *rB;
- t1 = (signed64)a * (signed64)b;
+ t1 = (int64_t)a * (int64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1496:EVX:e500:evmwumian %RS,%RA,%RB:Vector Multiply Word Unsigned Modulo Integer and Accumulate Negative
- unsigned64 t1, t2;
- unsigned32 a, b;
+ uint64_t t1, t2;
+ uint32_t a, b;
a = *rA;
b = *rB;
- t1 = (unsigned64)a * (unsigned64)b;
+ t1 = (uint64_t)a * (uint64_t)b;
t2 = ACC - t1;
EV_SET_REG1_ACC(*rSh, *rS, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK | RB_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.1217:EVX:e500:evaddssiaaw %RS,%RA:Vector Add Signed Saturate Integer to Accumulator Word
- signed64 t1, t2;
- signed32 al, ah;
+ int64_t t1, t2;
+ int32_t al, ah;
int ovl, ovh;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH + (signed64)ah;
- t2 = (signed64)EV_ACCLOW + (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH + (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW + (int64_t)al;
ovh = EV_SAT_P_S32(t1);
ovl = EV_SAT_P_S32(t2);
- EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, t1 & ((unsigned64)1 << 32), 0x80000000, 0x7fffffff, t1),
- EV_SATURATE_ACC(ovl, t2 & ((unsigned64)1 << 32), 0x80000000, 0x7fffffff, t2));
+ EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, t1 & ((uint64_t)1 << 32), 0x80000000, 0x7fffffff, t1),
+ EV_SATURATE_ACC(ovl, t2 & ((uint64_t)1 << 32), 0x80000000, 0x7fffffff, t2));
EV_SET_SPEFSCR_OV(ovl, ovh);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.0,21.1225:EVX:e500:evaddsmiaaw %RS,%RA:Vector Add Signed Modulo Integer to Accumulator Word
- signed64 t1, t2;
- signed32 al, ah;
+ int64_t t1, t2;
+ int32_t al, ah;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH + (signed64)ah;
- t2 = (signed64)EV_ACCLOW + (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH + (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW + (int64_t)al;
EV_SET_REG2_ACC(*rSh, *rS, t1, t2);
//printf("evaddsmiaaw: al %d ah %d t1 %qd t2 %qd\n", al, ah, t1, t2);
//printf("evaddsmiaaw: ACC = %08x.%08x; *rSh = %08x; *rS = %08x\n", (int)(ACC >> 32), (int)ACC, *rSh, *rS);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.1216:EVX:e500:evaddusiaaw %RS,%RA:Vector Add Unsigned Saturate Integer to Accumulator Word
- signed64 t1, t2;
- unsigned32 al, ah;
+ int64_t t1, t2;
+ uint32_t al, ah;
int ovl, ovh;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH + (signed64)ah;
- t2 = (signed64)EV_ACCLOW + (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH + (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW + (int64_t)al;
ovh = EV_SAT_P_U32(t1);
ovl = EV_SAT_P_U32(t2);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE(ovh, 0xffffffff, t1),
@@ -2159,24 +2159,24 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.0,21.1224:EVX:e500:evaddumiaaw %RS,%RA:Vector Add Unsigned Modulo Integer to Accumulator Word
- unsigned64 t1, t2;
- unsigned32 al, ah;
+ uint64_t t1, t2;
+ uint32_t al, ah;
al = *rA;
ah = *rAh;
- t1 = (unsigned64)EV_ACCHIGH + (unsigned64)ah;
+ t1 = (uint64_t)EV_ACCHIGH + (uint64_t)ah;
t2 = EV_ACCLOW + al;
EV_SET_REG2_ACC(*rSh, *rS, t1, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.1219:EVX:e500:evsubfssiaaw %RS,%RA:Vector Subtract Signed Saturate Integer to Accumulator Word
- signed64 t1, t2;
- signed32 al, ah;
+ int64_t t1, t2;
+ int32_t al, ah;
int ovl, ovh;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH - (signed64)ah;
- t2 = (signed64)EV_ACCLOW - (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH - (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW - (int64_t)al;
ovh = EV_SAT_P_S32(t1);
ovl = EV_SAT_P_S32(t2);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE_ACC(ovh, t1, 0x80000000, 0x7fffffff, t1),
@@ -2185,24 +2185,24 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.0,21.1227:EVX:e500:evsubfsmiaaw %RS,%RA:Vector Subtract Signed Modulo Integer to Accumulator Word
- signed64 t1, t2;
- signed32 al, ah;
+ int64_t t1, t2;
+ int32_t al, ah;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH - (signed64)ah;
- t2 = (signed64)EV_ACCLOW - (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH - (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW - (int64_t)al;
EV_SET_REG2_ACC(*rSh, *rS, t1, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.1218:EVX:e500:evsubfusiaaw %RS,%RA:Vector Subtract Unsigned Saturate Integer to Accumulator Word
- signed64 t1, t2;
- unsigned32 al, ah;
+ int64_t t1, t2;
+ uint32_t al, ah;
int ovl, ovh;
al = *rA;
ah = *rAh;
- t1 = (signed64)EV_ACCHIGH - (signed64)ah;
- t2 = (signed64)EV_ACCLOW - (signed64)al;
+ t1 = (int64_t)EV_ACCHIGH - (int64_t)ah;
+ t2 = (int64_t)EV_ACCLOW - (int64_t)al;
ovh = EV_SAT_P_U32(t1);
ovl = EV_SAT_P_U32(t2);
EV_SET_REG2_ACC(*rSh, *rS, EV_SATURATE(ovh, 0, t1),
@@ -2211,12 +2211,12 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.0,21.1226:EVX:e500:evsubfumiaaw %RS,%RA:Vector Subtract Unsigned Modulo Integer to Accumulator Word
- unsigned64 t1, t2;
- unsigned32 al, ah;
+ uint64_t t1, t2;
+ uint32_t al, ah;
al = *rA;
ah = *rAh;
- t1 = (unsigned64)EV_ACCHIGH - (unsigned64)ah;
- t2 = (unsigned64)EV_ACCLOW - (unsigned64)al;
+ t1 = (uint64_t)EV_ACCHIGH - (uint64_t)ah;
+ t2 = (uint64_t)EV_ACCLOW - (uint64_t)al;
EV_SET_REG2_ACC(*rSh, *rS, t1, t2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
@@ -2226,8 +2226,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.1222:EVX:e500:evdivws %RS,%RA,%RB:Vector Divide Word Signed
- signed32 dividendh, dividendl, divisorh, divisorl;
- signed32 w1, w2;
+ int32_t dividendh, dividendl, divisorh, divisorl;
+ int32_t w1, w2;
int ovh, ovl;
dividendh = *rAh;
dividendl = *rA;
@@ -2265,8 +2265,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.1223:EVX:e500:evdivwu %RS,%RA,%RB:Vector Divide Word Unsigned
- unsigned32 dividendh, dividendl, divisorh, divisorl;
- unsigned32 w1, w2;
+ uint32_t dividendh, dividendl, divisorh, divisorl;
+ uint32_t w1, w2;
int ovh, ovl;
dividendh = *rAh;
dividendl = *rA;
@@ -2296,21 +2296,21 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
0.4,6.RS,11.RA,16.0,21.644:EVX:e500:evfsabs %RS,%RA:Vector Floating-Point Absolute Value
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rAh & 0x7fffffff;
w2 = *rA & 0x7fffffff;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.645:EVX:e500:evfsnabs %RS,%RA:Vector Floating-Point Negative Absolute Value
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rAh | 0x80000000;
w2 = *rA | 0x80000000;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.646:EVX:e500:evfsneg %RS,%RA:Vector Floating-Point Negate
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rAh;
w2 = *rA;
w1 = (w1 & 0x7fffffff) | ((~w1) & 0x80000000);
@@ -2319,28 +2319,28 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.640:EVX:e500:evfsadd %RS,%RA,%RB:Vector Floating-Point Add
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = ev_fs_add (*rAh, *rBh, spefscr_finvh, spefscr_fovfh, spefscr_funfh, spefscr_fgh, spefscr_fxh, processor);
w2 = ev_fs_add (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.641:EVX:e500:evfssub %RS,%RA,%RB:Vector Floating-Point Subtract
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = ev_fs_sub (*rAh, *rBh, spefscr_finvh, spefscr_fovfh, spefscr_funfh, spefscr_fgh, spefscr_fxh, processor);
w2 = ev_fs_sub (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.648:EVX:e500:evfsmul %RS,%RA,%RB:Vector Floating-Point Multiply
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = ev_fs_mul (*rAh, *rBh, spefscr_finvh, spefscr_fovfh, spefscr_funfh, spefscr_fgh, spefscr_fxh, processor);
w2 = ev_fs_mul (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.649:EVX:e500:evfsdiv %RS,%RA,%RB:Vector Floating-Point Divide
- signed32 w1, w2;
+ int32_t w1, w2;
w1 = ev_fs_div (*rAh, *rBh, spefscr_finvh, spefscr_fovfh, spefscr_funfh, spefscr_fdbzh, spefscr_fgh, spefscr_fxh, processor);
w2 = ev_fs_div (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fdbz, spefscr_fg, spefscr_fx, processor);
EV_SET_REG2(*rSh, *rS, w1, w2);
@@ -2473,7 +2473,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.RS,11.0,16.RB,21.656:EVX:e500:evfscfui %RS,%RB:Vector Convert Floating-Point from Unsigned Integer
- unsigned32 f, w1, w2;
+ uint32_t f, w1, w2;
sim_fpu b;
sim_fpu_u32to (&b, *rBh, sim_fpu_round_default);
@@ -2485,7 +2485,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.664:EVX:e500:evfsctuiz %RS,%RB:Vector Convert Floating-Point to Unsigned Integer with Round toward Zero
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b;
sim_fpu_32to (&b, *rBh);
@@ -2497,7 +2497,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.657:EVX:e500:evfscfsi %RS,%RB:Vector Convert Floating-Point from Signed Integer
- signed32 w1, w2;
+ int32_t w1, w2;
sim_fpu b, x, y;
sim_fpu_i32to (&b, *rBh, sim_fpu_round_default);
@@ -2509,7 +2509,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.658:EVX:e500:evfscfuf %RS,%RB:Vector Convert Floating-Point from Unsigned Fraction
- unsigned32 w1, w2, bh, bl;
+ uint32_t w1, w2, bh, bl;
sim_fpu b, x, y;
bh = *rBh;
if (bh == 0xffffffff)
@@ -2533,7 +2533,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.659:EVX:e500:evfscfsf %RS,%RB:Vector Convert Floating-Point from Signed Fraction
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b, x, y;
sim_fpu_u32to (&x, 0x80000000, sim_fpu_round_default);
@@ -2550,7 +2550,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.660:EVX:e500:evfsctui %RS,%RB:Vector Convert Floating-Point to Unsigned Integer
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b;
sim_fpu_32to (&b, *rBh);
@@ -2562,7 +2562,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.661:EVX:e500:evfsctsi %RS,%RB:Vector Convert Floating-Point to Signed Integer
- signed32 w1, w2;
+ int32_t w1, w2;
sim_fpu b;
sim_fpu_32to (&b, *rBh);
@@ -2574,7 +2574,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.666:EVX:e500:evfsctsiz %RS,%RB:Vector Convert Floating-Point to Signed Integer with Round toward Zero
- signed32 w1, w2;
+ int32_t w1, w2;
sim_fpu b;
sim_fpu_32to (&b, *rBh);
@@ -2586,7 +2586,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.662:EVX:e500:evfsctuf %RS,%RB:Vector Convert Floating-Point to Unsigned Fraction
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b, x, y;
sim_fpu_u64to (&x, 0x100000000, sim_fpu_round_default);
@@ -2603,7 +2603,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.663:EVX:e500:evfsctsf %RS,%RB:Vector Convert Floating-Point to Signed Fraction
- signed32 w1, w2;
+ int32_t w1, w2;
sim_fpu b, x, y;
sim_fpu_32to (&y, *rBh);
@@ -2621,46 +2621,46 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.0,21.708:EVX:e500:efsabs %RS,%RA:Floating-Point Absolute Value
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rSh;
w2 = *rA & 0x7fffffff;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.709:EVX:e500:efsnabs %RS,%RA:Floating-Point Negative Absolute Value
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rSh;
w2 = *rA | 0x80000000;
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.0,21.710:EVX:e500:efsneg %RS,%RA:Floating-Point Negate
- unsigned32 w1, w2;
+ uint32_t w1, w2;
w1 = *rSh;
w2 = (*rA & 0x7fffffff) | ((~*rA) & 0x80000000);
EV_SET_REG2(*rSh, *rS, w1, w2);
PPC_INSN_INT(RS_BITMASK, RA_BITMASK, 0);
0.4,6.RS,11.RA,16.RB,21.704:EVX:e500:efsadd %RS,%RA,%RB:Floating-Point Add
- unsigned32 w;
+ uint32_t w;
w = ev_fs_add (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG(*rS, w);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.705:EVX:e500:efssub %RS,%RA,%RB:Floating-Point Subtract
- unsigned32 w;
+ uint32_t w;
w = ev_fs_sub (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG(*rS, w);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.712:EVX:e500:efsmul %RS,%RA,%RB:Floating-Point Multiply
- unsigned32 w;
+ uint32_t w;
w = ev_fs_mul (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fgh, spefscr_fxh, processor);
EV_SET_REG(*rS, w);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
0.4,6.RS,11.RA,16.RB,21.713:EVX:e500:efsdiv %RS,%RA,%RB:Floating-Point Divide
- unsigned32 w;
+ uint32_t w;
w = ev_fs_div (*rA, *rB, spefscr_finv, spefscr_fovf, spefscr_funf, spefscr_fdbz, spefscr_fg, spefscr_fx, processor);
EV_SET_REG(*rS, w);
PPC_INSN_INT_SPR(RS_BITMASK, RA_BITMASK | RB_BITMASK, spr_spefscr);
@@ -2750,7 +2750,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT_CR(0, RA_BITMASK | RB_BITMASK, BF_BITMASK);
0.4,6.RS,11.0,16.RB,21.721:EVX:e500:efscfsi %RS,%RB:Convert Floating-Point from Signed Integer
- signed32 f, w1, w2;
+ int32_t f, w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_i32to (&b, *rB, sim_fpu_round_default);
@@ -2759,7 +2759,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.720:EVX:e500:efscfui %RS,%RB:Convert Floating-Point from Unsigned Integer
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_u32to (&b, *rB, sim_fpu_round_default);
@@ -2768,7 +2768,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.723:EVX:e500:efscfsf %RS,%RB:Convert Floating-Point from Signed Fraction
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b, x, y;
w1 = *rSh;
sim_fpu_u32to (&x, 0x80000000, sim_fpu_round_default);
@@ -2779,7 +2779,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.722:EVX:e500:efscfuf %RS,%RB:Convert Floating-Point from Unsigned Fraction
- unsigned32 w1, w2, bl;
+ uint32_t w1, w2, bl;
sim_fpu b, x, y;
w1 = *rSh;
bl = *rB;
@@ -2795,8 +2795,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.725:EVX:e500:efsctsi %RS,%RB:Convert Floating-Point to Signed Integer
- signed64 temp;
- signed32 w1, w2;
+ int64_t temp;
+ int32_t w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_32to (&b, *rB);
@@ -2805,8 +2805,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.730:EVX:e500:efsctsiz %RS,%RB:Convert Floating-Point to Signed Integer with Round toward Zero
- signed64 temp;
- signed32 w1, w2;
+ int64_t temp;
+ int32_t w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_32to (&b, *rB);
@@ -2815,8 +2815,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.724:EVX:e500:efsctui %RS,%RB:Convert Floating-Point to Unsigned Integer
- unsigned64 temp;
- signed32 w1, w2;
+ uint64_t temp;
+ int32_t w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_32to (&b, *rB);
@@ -2825,8 +2825,8 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.728:EVX:e500:efsctuiz %RS,%RB:Convert Floating-Point to Unsigned Integer with Round toward Zero
- unsigned64 temp;
- signed32 w1, w2;
+ uint64_t temp;
+ int32_t w1, w2;
sim_fpu b;
w1 = *rSh;
sim_fpu_32to (&b, *rB);
@@ -2835,7 +2835,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.727:EVX:e500:efsctsf %RS,%RB:Convert Floating-Point to Signed Fraction
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b, x, y;
w1 = *rSh;
sim_fpu_32to (&y, *rB);
@@ -2847,7 +2847,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, RB_BITMASK, 0);
0.4,6.RS,11.0,16.RB,21.726:EVX:e500:efsctuf %RS,%RB:Convert Floating-Point to Unsigned Fraction
- unsigned32 w1, w2;
+ uint32_t w1, w2;
sim_fpu b, x, y;
w1 = *rSh;
sim_fpu_u64to (&x, 0x100000000, sim_fpu_round_default);
@@ -2863,7 +2863,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
#
0.4,6.RS,11.RA,16.UIMM,21.769:EVX:e500:evldd %RS,%RA,%UIMM:Vector Load Double Word into Double Word
- unsigned64 m;
+ uint64_t m;
unsigned_word b;
unsigned_word EA;
if (RA_is_0) b = 0;
@@ -2875,7 +2875,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
PPC_INSN_INT(RS_BITMASK, (RA_BITMASK & ~1), 0);
0.4,6.RS,11.RA,16.RB,21.768:EVX:e500:evlddx %RS,%RA,%RB:Vector Load Double Word into Double Word Indexed
- unsigned64 m;
+ uint64_t m;
unsigned_word b;
unsigned_word EA;
if (RA_is_0) b = 0;
@@ -2888,7 +2888,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.771:EVX:e500:evldw %RS,%RA,%UIMM:Vector Load Double into Two Words
unsigned_word b;
unsigned_word EA;
- unsigned32 w1, w2;
+ uint32_t w1, w2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -2900,7 +2900,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.770:EVX:e500:evldwx %RS,%RA,%RB:Vector Load Double into Two Words Indexed
unsigned_word b;
unsigned_word EA;
- unsigned32 w1, w2;
+ uint32_t w1, w2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -2912,7 +2912,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.773:EVX:e500:evldh %RS,%RA,%UIMM:Vector Load Double into 4 Half Words
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -2926,7 +2926,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.772:EVX:e500:evldhx %RS,%RA,%RB:Vector Load Double into 4 Half Words Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -2940,7 +2940,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.785:EVX:e500:evlwhe %RS,%RA,%UIMM:Vector Load Word into Two Half Words Even
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 2);
@@ -2954,7 +2954,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.784:EVX:e500:evlwhex %RS,%RA,%RB:Vector Load Word into Two Half Words Even Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -2968,7 +2968,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.789:EVX:e500:evlwhou %RS,%RA,%UIMM:Vector Load Word into Two Half Words Odd Unsigned zero-extended
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 2);
@@ -2982,7 +2982,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.788:EVX:e500:evlwhoux %RS,%RA,%RB:Vector Load Word into Two Half Words Odd Unsigned Indexed zero-extended
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -2996,7 +2996,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.791:EVX:e500:evlwhos %RS,%RA,%UIMM:Vector Load Word into Half Words Odd Signed with sign extension
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 2);
@@ -3016,7 +3016,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.790:EVX:e500:evlwhosx %RS,%RA,%RB:Vector Load Word into Half Words Odd Signed Indexed with sign extension
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3036,7 +3036,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.793:EVX:e500:evlwwsplat %RS,%RA,%UIMM:Vector Load Word into Word and Splat
unsigned_word b;
unsigned_word EA;
- unsigned32 w1;
+ uint32_t w1;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 2);
@@ -3047,7 +3047,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.792:EVX:e500:evlwwsplatx %RS,%RA,%RB:Vector Load Word into Word and Splat Indexed
unsigned_word b;
unsigned_word EA;
- unsigned32 w1;
+ uint32_t w1;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3058,7 +3058,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.797:EVX:e500:evlwhsplat %RS,%RA,%UIMM:Vector Load Word into 2 Half Words and Splat
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 2);
@@ -3070,7 +3070,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.796:EVX:e500:evlwhsplatx %RS,%RA,%RB:Vector Load Word into 2 Half Words and Splat Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3082,7 +3082,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.777:EVX:e500:evlhhesplat %RS,%RA,%UIMM:Vector Load Half Word into Half Words Even and Splat
unsigned_word b;
unsigned_word EA;
- unsigned16 h;
+ uint16_t h;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 1);
@@ -3093,7 +3093,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.776:EVX:e500:evlhhesplatx %RS,%RA,%RB:Vector Load Half Word into Half Words Even and Splat Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h;
+ uint16_t h;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3104,7 +3104,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.781:EVX:e500:evlhhousplat %RS,%RA,%UIMM:Vector Load Half Word into Half Word Odd Unsigned and Splat
unsigned_word b;
unsigned_word EA;
- unsigned16 h;
+ uint16_t h;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 1);
@@ -3115,7 +3115,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.780:EVX:e500:evlhhousplatx %RS,%RA,%RB:Vector Load Half Word into Half Word Odd Unsigned and Splat Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h;
+ uint16_t h;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3126,7 +3126,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.783:EVX:e500:evlhhossplat %RS,%RA,%UIMM:Vector Load Half Word into Half Word Odd Signed and Splat
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 1);
@@ -3141,7 +3141,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.782:EVX:e500:evlhhossplatx %RS,%RA,%RB:Vector Load Half Word into Half Word Odd Signed and Splat Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3177,7 +3177,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.803:EVX:e500:evstdw %RS,%RA,%UIMM:Vector Store Double of Two Words
unsigned_word b;
unsigned_word EA;
- unsigned32 w1, w2;
+ uint32_t w1, w2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3190,7 +3190,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.802:EVX:e500:evstdwx %RS,%RA,%RB:Vector Store Double of Two Words Indexed
unsigned_word b;
unsigned_word EA;
- unsigned32 w1, w2;
+ uint32_t w1, w2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3203,7 +3203,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.805:EVX:e500:evstdh %RS,%RA,%UIMM:Vector Store Double of Four Half Words
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3220,7 +3220,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.804:EVX:e500:evstdhx %RS,%RA,%RB:Vector Store Double of Four Half Words Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2, h3, h4;
+ uint16_t h1, h2, h3, h4;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3237,7 +3237,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.825:EVX:e500:evstwwe %RS,%RA,%UIMM:Vector Store Word of Word from Even
unsigned_word b;
unsigned_word EA;
- unsigned32 w;
+ uint32_t w;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3248,7 +3248,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.824:EVX:e500:evstwwex %RS,%RA,%RB:Vector Store Word of Word from Even Indexed
unsigned_word b;
unsigned_word EA;
- unsigned32 w;
+ uint32_t w;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3259,7 +3259,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.829:EVX:e500:evstwwo %RS,%RA,%UIMM:Vector Store Word of Word from Odd
unsigned_word b;
unsigned_word EA;
- unsigned32 w;
+ uint32_t w;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3270,7 +3270,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.828:EVX:e500:evstwwox %RS,%RA,%RB:Vector Store Word of Word from Odd Indexed
unsigned_word b;
unsigned_word EA;
- unsigned32 w;
+ uint32_t w;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3281,7 +3281,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.817:EVX:e500:evstwhe %RS,%RA,%UIMM:Vector Store Word of Two Half Words from Even
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3294,7 +3294,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.816:EVX:e500:evstwhex %RS,%RA,%RB:Vector Store Word of Two Half Words from Even Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;
@@ -3307,7 +3307,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.UIMM,21.821:EVX:e500:evstwho %RS,%RA,%UIMM:Vector Store Word of Two Half Words from Odd
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + (UIMM << 3);
@@ -3320,7 +3320,7 @@ void::model-function::ppc_insn_int_spr:itable_index index, model_data *model_ptr
0.4,6.RS,11.RA,16.RB,21.820:EVX:e500:evstwhox %RS,%RA,%RB:Vector Store Word of Two Half Words from Odd Indexed
unsigned_word b;
unsigned_word EA;
- unsigned16 h1, h2;
+ uint16_t h1, h2;
if (RA_is_0) b = 0;
else b = *rA;
EA = b + *rB;