On 12/17/2014 09:59 AM, Bastian Koppelmann wrote: > Add instructions of RR opcode format, that have 0xb as the first opcode. > Add helper functions, for hword and byte arithmetics: > * add_h_ssov/suov: Add two halfword and saturate on overflow. > * sub_h_ssov/suov: Sub two halfword and saturate on overflow. > * absdif_h_ssov: Compute absolute difference for halfwords and saturate > on overflow. > * abs_h_ssov/suov: Compute absolute value for two halfwords and saturate > on overflow. > * abs_b/h: Compute absolute value for four/two bytes/halfwords > * absdif_b/h: Compute absolute difference for four/two bytes/halfwords > * add_b/h: Add four/two bytes/halfwords. > * sub_b/h: Sub four/two bytes/halfwords. > * eq_b/h: Compare four/two bytes/halfwords with four/two bytes/halfwords > on > equality and set all bits of to either one ore zero. > * eqany_b/h: Compare four/two bytes/halfwords with four/two > bytes/halfwords on equality. > * lt_b/bu/h/hu: Compare four/two bytes/halfwords with four/two > bytes/halfwords > on less than signed and unsigned. > * max_b/bu/h/hu: Calculate max for four/two bytes/halfwords signed and > unsigned. > * min_b/bu/h/hu: Calculate min for four/two bytes/halfwords signed and > unsigned. > Add helper function abs_ssov, that computes the absolute value for a 32 bit > integer and saturates on overflow. > Add microcode generator functions: > * gen_sub_CC: Caluclates sub and sets the carry bit. > * gen_subc_CC: Caluclates sub and carry and sets the carry bit > * gen_abs: Compute absolute value for a 32 bit integer. > * gen_cond_w: Compares two 32 bit values on cond and sets result either > zero or all bits one. > > OPC2_32_RR_MIN switched with OPC2_32_RR_MIN_U. > > Signed-off-by: Bastian Koppelmann <kbast...@mail.uni-paderborn.de> > --- > v1 -> v2: > - gen_cond_w now uses neg and saves a temp. > - SSOV16/SUOV16 are now regular functions. > - Use TCG_CALL_NO_RWG_SE for all helpers not using globals.
Reviewed-by: Richard Henderson <r...@twiddle.net> r~