Ghidra Decompiler Analysis Engine
|
Go to the documentation of this file.
18 #ifndef __CPUI_OPBEHAVIOR__
19 #define __CPUI_OPBEHAVIOR__
63 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
66 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
69 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
126 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
134 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
141 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
148 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
155 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
162 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
169 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
176 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
184 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
192 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
193 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
200 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
201 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
208 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
215 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
222 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
229 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
236 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
243 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
250 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
257 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
264 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
265 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
272 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
273 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
280 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
281 virtual uintb
recoverInputBinary(int4 slot,int4 sizeout,uintb out,int4 sizein,uintb in)
const;
288 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
295 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
302 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
309 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
316 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
323 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
330 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
337 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
344 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
352 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
360 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
368 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
376 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
384 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
392 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
400 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
408 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
416 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
424 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
432 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
440 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
448 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
456 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
464 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
472 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
480 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
488 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
495 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
502 virtual uintb
evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2)
const;
509 virtual uintb
evaluateUnary(int4 sizeout,int4 sizein,uintb in1)
const;
CPUI_FLOAT_NOTEQUAL behavior.
Definition: opbehavior.hh:356
CPUI_INT_RIGHT behavior.
Definition: opbehavior.hh:269
CPUI_INT_ZEXT behavior.
Definition: opbehavior.hh:173
@ CPUI_FLOAT_ROUND
Round towards nearest.
Definition: opcodes.hh:106
CPUI_FLOAT_SQRT behavior.
Definition: opbehavior.hh:436
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:412
CPUI_INT_SDIV behavior.
Definition: opbehavior.hh:299
CPUI_INT_SREM behavior.
Definition: opbehavior.hh:313
@ CPUI_FLOAT_NAN
Not-a-number test (NaN)
Definition: opcodes.hh:91
@ CPUI_PIECE
Concatenate.
Definition: opcodes.hh:114
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:663
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:593
CPUI_INT_2COMP behavior.
Definition: opbehavior.hh:226
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:250
static void registerInstructions(vector< OpBehavior * > &inst, const Translate *trans)
Build all pcode behaviors.
Definition: opbehavior.cc:22
@ CPUI_INT_NEGATE
Logical/bitwise negation (~)
Definition: opcodes.hh:66
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:174
The lowest level error generated by the decompiler.
Definition: error.hh:44
@ CPUI_FLOAT_LESS
Floating-point comparison, less-than (<)
Definition: opcodes.hh:88
@ CPUI_FLOAT_LESSEQUAL
Floating-point comparison, less-than-or-equal (<=)
Definition: opcodes.hh:89
@ CPUI_INT_DIV
Integer division, unsigned (/)
Definition: opcodes.hh:74
@ CPUI_FLOAT_NEG
Floating-point negation (-)
Definition: opcodes.hh:97
CPUI_BOOL_OR behavior.
Definition: opbehavior.hh:341
virtual uintb recoverInputUnary(int4 sizeout, uintb out, int4 sizein) const
Reverse the unary op-code operation, recovering the input value.
Definition: opbehavior.cc:241
CPUI_FLOAT_LESS behavior.
Definition: opbehavior.hh:364
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:281
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:288
@ CPUI_INT_ADD
Addition, signed or unsigned (+)
Definition: opcodes.hh:60
Base class for error handling facilities.
CPUI_FLOAT_ABS behavior.
Definition: opbehavior.hh:428
@ CPUI_INT_SDIV
Integer division, signed (/)
Definition: opcodes.hh:75
@ CPUI_INT_SUB
Subtraction, signed or unsigned (-)
Definition: opcodes.hh:61
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:686
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:314
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:726
@ CPUI_INT_EQUAL
Integer comparison, equality (==)
Definition: opcodes.hh:51
CPUI_FLOAT_INT2FLOAT behavior.
Definition: opbehavior.hh:444
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:623
@ CPUI_FLOAT_SUB
Floating-point subtraction (-)
Definition: opcodes.hh:96
CPUI_INT_XOR behavior.
Definition: opbehavior.hh:240
@ CPUI_SUBPIECE
Truncate.
Definition: opcodes.hh:115
@ CPUI_INT_LESSEQUAL
Integer comparison, unsigned less-than-or-equal (<=)
Definition: opcodes.hh:57
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:633
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:360
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:583
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:673
@ CPUI_INT_2COMP
Twos complement.
Definition: opcodes.hh:65
@ CPUI_FLOAT_ADD
Floating-point addition (+)
Definition: opcodes.hh:93
CPUI_INT_SEXT behavior.
Definition: opbehavior.hh:181
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:613
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:563
bool isSpecial(void) const
Check if this is a special operator.
Definition: opbehavior.hh:110
@ CPUI_INT_OR
Logical/bitwise or (|)
Definition: opcodes.hh:69
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:221
@ CPUI_INT_NOTEQUAL
Integer comparison, in-equality (!=)
Definition: opcodes.hh:52
@ CPUI_FLOAT_DIV
Floating-point division (/)
Definition: opcodes.hh:94
virtual uintb recoverInputUnary(int4 sizeout, uintb out, int4 sizein) const
Reverse the unary op-code operation, recovering the input value.
Definition: opbehavior.cc:161
@ CPUI_INT_LEFT
Left shift (<<)
Definition: opcodes.hh:70
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:716
CPUI_FLOAT_ROUND behavior.
Definition: opbehavior.hh:484
@ CPUI_BOOL_OR
Boolean or (||)
Definition: opcodes.hh:82
CPUI_BOOL_AND behavior.
Definition: opbehavior.hh:334
@ CPUI_INT_SRIGHT
Right shift, arithmetic (>>)
Definition: opcodes.hh:72
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:491
Class encapsulating the action/behavior of specific pcode opcodes.
Definition: opbehavior.hh:42
CPUI_BOOL_NEGATE behavior.
Definition: opbehavior.hh:320
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:123
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:307
@ CPUI_FLOAT_EQUAL
Floating-point comparison, equality (==)
Definition: opcodes.hh:86
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:462
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:367
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:522
@ CPUI_FLOAT_SQRT
Floating-point square root (sqrt)
Definition: opcodes.hh:99
CPUI_INT_CARRY behavior.
Definition: opbehavior.hh:205
@ CPUI_BOOL_NEGATE
Boolean negate (!)
Definition: opcodes.hh:79
CPUI_INT_EQUAL behavior.
Definition: opbehavior.hh:131
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:515
@ CPUI_INT_ZEXT
Zero extension.
Definition: opcodes.hh:58
@ CPUI_INT_RIGHT
Right shift, logical (>>)
Definition: opcodes.hh:71
@ CPUI_BOOL_AND
Boolean and (&&)
Definition: opcodes.hh:81
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:353
CPUI_FLOAT_NEG behavior.
Definition: opbehavior.hh:420
CPUI_FLOAT_LESSEQUAL behavior.
Definition: opbehavior.hh:372
@ CPUI_FLOAT_FLOOR
Round towards -infinity.
Definition: opcodes.hh:105
@ CPUI_INT_SREM
Remainder/modulo, signed (%)
Definition: opcodes.hh:77
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:469
CPUI_FLOAT_NAN behavior.
Definition: opbehavior.hh:380
OpBehavior(OpCode opc, bool isun)
A behavior constructor.
Definition: opbehavior.hh:80
CPUI_FLOAT_FLOOR behavior.
Definition: opbehavior.hh:476
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:201
CPUI_FLOAT_SUB behavior.
Definition: opbehavior.hh:412
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:529
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:228
CPUI_INT_SLESS behavior.
Definition: opbehavior.hh:145
@ CPUI_FLOAT_CEIL
Round towards +infinity.
Definition: opcodes.hh:104
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:603
@ CPUI_POPCOUNT
Count the 1-bits.
Definition: opcodes.hh:125
CPUI_INT_MULT behavior.
Definition: opbehavior.hh:285
CPUI_INT_SUB behavior.
Definition: opbehavior.hh:197
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:536
@ CPUI_INT_SEXT
Sign extension.
Definition: opcodes.hh:59
All the individual p-code operations.
CPUI_INT_LEFT behavior.
Definition: opbehavior.hh:261
CPUI_SUBPIECE behavior.
Definition: opbehavior.hh:499
@ CPUI_INT_LESS
Integer comparison, unsigned less-than (<)
Definition: opcodes.hh:55
CPUI_FLOAT_FLOAT2FLOAT behavior.
Definition: opbehavior.hh:452
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:235
CPUI_FLOAT_CEIL behavior.
Definition: opbehavior.hh:468
@ CPUI_FLOAT_NOTEQUAL
Floating-point comparison, in-equality (!=)
Definition: opcodes.hh:87
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:295
CPUI_INT_LESS behavior.
Definition: opbehavior.hh:159
Definition: opbehavior.hh:28
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:733
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:706
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:501
LowlevelError(const string &s)
Initialize the error with an explanatory string.
Definition: error.hh:47
CPUI_FLOAT_TRUNC behavior.
Definition: opbehavior.hh:460
@ CPUI_BOOL_XOR
Boolean exclusive-or (^^)
Definition: opcodes.hh:80
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:167
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:573
CPUI_INT_NOTEQUAL behavior.
Definition: opbehavior.hh:138
@ CPUI_INT_XOR
Logical/bitwise exclusive-or (^)
Definition: opcodes.hh:67
CPUI_INT_SRIGHT behavior.
Definition: opbehavior.hh:277
The interface to a translation engine for a processor.
Definition: translate.hh:294
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:381
OpCode getOpcode(void) const
Get the opcode for this pcode operation.
Definition: opbehavior.hh:103
CPUI_FLOAT_MULT behavior.
Definition: opbehavior.hh:404
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:181
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:740
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:444
@ CPUI_INT_CARRY
Test for unsigned carry.
Definition: opcodes.hh:62
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:696
@ CPUI_INT_SCARRY
Test for signed carry.
Definition: opcodes.hh:63
CPUI_INT_DIV behavior.
Definition: opbehavior.hh:292
OpCode
The op-code defining a specific p-code operation (PcodeOp)
Definition: opcodes.hh:35
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:477
CPUI_INT_SBORROW behavior.
Definition: opbehavior.hh:219
@ CPUI_FLOAT_ABS
Floating-point absolute value (abs)
Definition: opcodes.hh:98
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:653
CPUI_FLOAT_EQUAL behavior.
Definition: opbehavior.hh:348
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:402
bool isUnary(void) const
Check if operator is unary.
Definition: opbehavior.hh:116
@ CPUI_INT_AND
Logical/bitwise and (&)
Definition: opcodes.hh:68
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:391
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:374
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:111
@ CPUI_INT_REM
Remainder/modulo, unsigned (%)
Definition: opcodes.hh:76
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:330
@ CPUI_FLOAT_FLOAT2FLOAT
Convert between different floating-point sizes.
Definition: opcodes.hh:102
CPUI_PIECE behavior.
Definition: opbehavior.hh:492
@ CPUI_INT_SLESSEQUAL
Integer comparison, signed less-than-or-equal (<=)
Definition: opcodes.hh:54
@ CPUI_INT_SBORROW
Test for signed borrow.
Definition: opcodes.hh:64
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:346
@ CPUI_COPY
Copy one operand to another.
Definition: opcodes.hh:36
CPUI_INT_ADD behavior.
Definition: opbehavior.hh:189
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:155
CPUI_COPY behavior.
Definition: opbehavior.hh:123
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:553
virtual uintb recoverInputBinary(int4 slot, int4 sizeout, uintb out, int4 sizein, uintb in) const
Reverse the binary op-code operation, recovering an input value.
Definition: opbehavior.cc:149
CPUI_FLOAT_DIV behavior.
Definition: opbehavior.hh:396
CPUI_INT_LESSEQUAL behavior.
Definition: opbehavior.hh:166
CPUI_INT_SLESSEQUAL behavior.
Definition: opbehavior.hh:152
CPUI_INT_SCARRY behavior.
Definition: opbehavior.hh:212
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:274
CPUI_INT_AND behavior.
Definition: opbehavior.hh:247
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:424
@ CPUI_FLOAT_MULT
Floating-point multiplication (*)
Definition: opcodes.hh:95
CPUI_BOOL_XOR behavior.
Definition: opbehavior.hh:327
CPUI_INT_NEGATE behavior.
Definition: opbehavior.hh:233
@ CPUI_FLOAT_TRUNC
Round towards zero.
Definition: opcodes.hh:103
@ CPUI_FLOAT_INT2FLOAT
Convert an integer to a floating-point.
Definition: opcodes.hh:101
virtual uintb recoverInputUnary(int4 sizeout, uintb out, int4 sizein) const
Reverse the unary op-code operation, recovering the input value.
Definition: opbehavior.cc:135
CPUI_POPCOUNT behavior.
Definition: opbehavior.hh:506
virtual uintb evaluateUnary(int4 sizeout, int4 sizein, uintb in1) const
Emulate the unary op-code on an input value.
Definition: opbehavior.cc:643
@ CPUI_INT_MULT
Integer multiplication, signed and unsigned (*)
Definition: opcodes.hh:73
@ CPUI_INT_SLESS
Integer comparison, signed less-than (<)
Definition: opcodes.hh:53
virtual uintb recoverInputUnary(int4 sizeout, uintb out, int4 sizein) const
Reverse the unary op-code operation, recovering the input value.
Definition: opbehavior.cc:257
CPUI_INT_OR behavior.
Definition: opbehavior.hh:254
virtual uintb evaluateBinary(int4 sizeout, int4 sizein, uintb in1, uintb in2) const
Emulate the binary op-code on input values.
Definition: opbehavior.cc:543
CPUI_FLOAT_ADD behavior.
Definition: opbehavior.hh:388
CPUI_INT_REM behavior.
Definition: opbehavior.hh:306