Add Intel encodings for the fcmp instruction.
Not all floating point condition codes are directly supported by the ucimiss/ucomisd instructions. Some inequalities need to be reversed and eq+ne require two separate tests.
This commit is contained in:
@@ -7,9 +7,22 @@ from __future__ import absolute_import
|
||||
from cdsl.isa import TargetISA, CPUMode
|
||||
import base.instructions
|
||||
from . import instructions as x86
|
||||
from base.immediates import floatcc
|
||||
|
||||
ISA = TargetISA('intel', [base.instructions.GROUP, x86.GROUP])
|
||||
|
||||
# CPU modes for 32-bit and 64-bit operation.
|
||||
I64 = CPUMode('I64', ISA)
|
||||
I32 = CPUMode('I32', ISA)
|
||||
|
||||
# The set of floating point condition codes that are directly supported.
|
||||
# Other condition codes need to be reversed or expressed as two tests.
|
||||
supported_floatccs = [
|
||||
floatcc.ord,
|
||||
floatcc.uno,
|
||||
floatcc.one,
|
||||
floatcc.ueq,
|
||||
floatcc.gt,
|
||||
floatcc.ge,
|
||||
floatcc.ult,
|
||||
floatcc.ule]
|
||||
|
||||
Reference in New Issue
Block a user