); # %reg_classes
%cpu = (
- "ALU" => [ 1, "ALU1", "ALU2", "ALU3", "ALU4" ],
- "MUL" => [ 1, "MUL1", "MUL2" ],
- "SSE" => [ 1, "SSE1", "SSE2" ],
- "FPU" => [ 1, "FPU1" ],
- "MEM" => [ 1, "MEM1", "MEM2" ],
+ "GP" => [ 1, "GP_EAX", "GP_EBX", "GP_ECX", "GP_EDX", "GP_ESI", "GP_EDI", "GP_EBP" ],
+ "SSE" => [ 1, "SSE_XMM0", "SSE_XMM1", "SSE_XMM2", "SSE_XMM3", "SSE_XMM4", "SSE_XMM5", "SSE_XMM6", "SSE_XMM7" ],
+ "VFP" => [ 1, "VFP_VF0", "VFP_VF1", "VFP_VF2", "VFP_VF3", "VFP_VF4", "VFP_VF5", "VFP_VF6", "VFP_VF7" ],
"BRANCH" => [ 1, "BRANCH1", "BRANCH2" ],
- "DUMMY" => [ 1, "DUMMY1", "DUMMY2", "DUMMY3", "DUMMY4" ]
); # %cpu
%vliw = (
- "bundle_size" => 3,
- "bundels_per_cycle" => 2
+ "bundle_size" => 1,
+ "bundels_per_cycle" => 1
); # vliw
#--------------------------------------------------#
"comment" => "construct Add: Add(a, b) = Add(b, a) = a + b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. add %ia32_emit_binop /* Add(%A3, %A4) -> %D1 */',
- "units" => [ "ALU", "MEM" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Add with Carry: AddC(a, b) = Add(b, a) = a + b + carry",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. adc %ia32_emit_binop /* AddC(%A3, %A4) -> %D1 */',
- "units" => [ "ALU", "MEM" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
. adc %D2, %S4 /* a_h + b_h + carry */
',
"outs" => [ "low_res", "high_res" ],
- "units" => [ "ALU", "MEM" ],
+ "units" => [ "GP" ],
},
"l_Add" => {
"emit" => '. mul %ia32_emit_unop /* Mul(%A1, %A2) -> %D1 */',
"outs" => [ "EAX", "EDX", "M" ],
"latency" => 10,
- "units" => [ "MUL" ],
+ "units" => [ "GP" ],
},
"l_MulS" => {
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. imul %ia32_emit_binop /* Mul(%A1, %A2) -> %D1 */',
"latency" => 5,
- "units" => [ "MUL" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"emit" => '. imul %ia32_emit_unop /* Mulh(%A1, %A2) -> %D1 */',
"outs" => [ "EAX", "EDX", "M" ],
"latency" => 5,
- "units" => [ "MUL" ],
+ "units" => [ "GP" ],
},
"And" => {
"comment" => "construct And: And(a, b) = And(b, a) = a AND b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. and %ia32_emit_binop /* And(%A1, %A2) -> %D1 */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Or: Or(a, b) = Or(b, a) = a OR b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. or %ia32_emit_binop /* Or(%A1, %A2) -> %D1 */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Eor: Eor(a, b) = Eor(b, a) = a EOR b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. xor %ia32_emit_binop /* Xor(%A1, %A2) -> %D1 */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Sub: Sub(a, b) = a - b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. sub %ia32_emit_binop /* Sub(%A3, %A4) -> %D1 */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Sub with Carry: SubC(a, b) = a - b - carry",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. sbb %ia32_emit_binop /* SubC(%A3, %A4) -> %D1 */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
. sbb %D2, %S4 /* a_h - b_h - borrow */
',
"outs" => [ "low_res", "high_res" ],
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"l_Sub" => {
"emit" => ". idiv %S2 /* signed IDiv(%S1, %S2) -> %D1, (%A1, %A2, %A3) */",
"outs" => [ "div_res", "mod_res", "M" ],
"latency" => 25,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"Div" => {
"emit" => ". div %S2 /* unsigned Div(%S1, %S2) -> %D1, (%A1, %A2, %A3) */",
"outs" => [ "div_res", "mod_res", "M" ],
"latency" => 25,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"Shl" => {
"comment" => "construct Shl: Shl(a, b) = a << b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "ecx", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. shl %ia32_emit_binop /* Shl(%A1, %A2) -> %D1 */',
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
}
',
"latency" => 6,
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Shr: Shr(a, b) = a >> b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "ecx", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. shr %ia32_emit_binop /* Shr(%A1, %A2) -> %D1 */',
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
}
',
"latency" => 6,
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Shrs: Shrs(a, b) = a >> b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "ecx", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. sar %ia32_emit_binop /* Shrs(%A1, %A2) -> %D1 */',
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct RotR: RotR(a, b) = a ROTR b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "ecx", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. ror %ia32_emit_binop /* RotR(%A1, %A2) -> %D1 */',
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct RotL: RotL(a, b) = a ROTL b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "ecx", "none" ], "out" => [ "in_r3 !in_r4" ] },
"emit" => '. rol %ia32_emit_binop /* RotL(%A1, %A2) -> %D1 */',
- "units" => [ "ALU1", "SSE1" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Minus: Minus(a) = -a",
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. neg %ia32_emit_unop /* Neg(%A1) -> %D1, (%A1) */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
. sbb %D2, %S3 /* 0 - a_h - borrow -> high_res */
',
"outs" => [ "low_res", "high_res" ],
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"comment" => "construct Increment: Inc(a) = a++",
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. inc %ia32_emit_unop /* Inc(%S1) -> %D1, (%A1) */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Decrement: Dec(a) = a--",
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. dec %ia32_emit_unop /* Dec(%S1) -> %D1, (%A1) */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Not: Not(a) = !a",
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ], "out" => [ "in_r3" ] },
"emit" => '. not %ia32_emit_unop /* Not(%S1) -> %D1, (%A1) */',
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"irn_flags" => "R",
"comment" => "represents an integer constant",
"reg_req" => { "out" => [ "gp" ] },
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"reg_req" => { "out" => [ "fp_cw" ] },
"mode" => "mode_Hu",
"latency" => 3,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"FldCW" => {
"latency" => 5,
"emit" => ". fldcw %ia32_emit_am /* FldCW(%A1) -> %D1 */",
"mode" => "mode_Hu",
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"FstCW" => {
"latency" => 5,
"emit" => ". fstcw %ia32_emit_am /* FstCW(%A3) -> %A1 */",
"mode" => "mode_M",
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"Cdq" => {
"reg_req" => { "in" => [ "gp" ], "out" => [ "eax in_r1", "edx" ] },
"emit" => '. cdq /* sign extend EAX -> EDX:EAX, (%A1) */',
"outs" => [ "EAX", "EDX" ],
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
# Load / Store
}
',
"outs" => [ "res", "M" ],
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"l_Load" => {
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ] },
"emit" => '. mov %ia32_emit_binop /* Store(%A3) -> (%A1) */',
"latency" => 3,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
"mode" => "mode_M",
},
"reg_req" => { "in" => [ "gp", "gp", "eax ebx ecx edx", "none" ] },
"emit" => '. mov %ia32_emit_binop /* Store(%A3) -> (%A1) */',
"latency" => 3,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
"mode" => "mode_M",
},
"reg_req" => { "in" => [ "gp", "gp" ], "out" => [ "in_r1" ] },
"emit" => '. lea %D1, %ia32_emit_am /* LEA(%A1, %A2) */',
"latency" => 2,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"emit" => '. push %ia32_emit_unop /* PUSH(%A1) */',
"outs" => [ "stack:I|S", "M" ],
"latency" => 3,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"Pop" => {
"emit" => '. pop %ia32_emit_unop /* POP(%A1) */',
"outs" => [ "stack:I|S", "res", "M" ],
"latency" => 4,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"Enter" => {
"emit" => '. enter /* Enter */',
"outs" => [ "frame:I", "stack:I|S", "M" ],
"latency" => 15,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"Leave" => {
"emit" => '. leave /* Leave */',
"outs" => [ "frame:I", "stack:I|S" ],
"latency" => 3,
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"AddSP" => {
"comment" => "allocate space on stack",
"reg_req" => { "in" => [ "esp", "gp" ], "out" => [ "esp", "none" ] },
"outs" => [ "stack:S", "M" ],
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"SubSP" => {
"comment" => "free space on stack",
"reg_req" => { "in" => [ "esp", "gp" ], "out" => [ "esp", "none" ] },
"outs" => [ "stack:S", "M" ],
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
},
"LdTls" => {
"irn_flags" => "R",
"comment" => "get the TLS base address",
"reg_req" => { "out" => [ "gp" ] },
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"reg_req" => { "in" => [ "gp", "gp", "xmm", "none" ] },
"emit" => '. movs%M %ia32_emit_binop /* Store(%S3) -> (%A1) */',
"latency" => 2,
- "units" => [ "MEM" ],
+ "units" => [ "SSE" ],
"mode" => "mode_M",
},
"reg_req" => { "in" => [ "gp", "xmm", "none" ] },
"emit" => '. movs%M %ia32_emit_am, %S2 /* store XMM0 onto stack */',
"latency" => 2,
- "units" => [ "MEM" ],
+ "units" => [ "SSE" ],
"mode" => "mode_M",
},
"reg_req" => { "in" => [ "gp", "gp", "none" ] },
"emit" => '. fstp %ia32_emit_am /* store ST0 onto stack */',
"latency" => 4,
- "units" => [ "MEM" ],
+ "units" => [ "SSE" ],
"mode" => "mode_M",
},
"emit" => '. fld %ia32_emit_am /* load ST0 from stack */',
"outs" => [ "res", "M" ],
"latency" => 2,
- "units" => [ "MEM" ],
+ "units" => [ "SSE" ],
},
# CopyB
"comment" => "implements a memcopy: CopyB(dst, src, size, mem) == memcpy(dst, src, size)",
"reg_req" => { "in" => [ "edi", "esi", "ecx", "none" ], "out" => [ "edi", "esi", "ecx", "none" ] },
"outs" => [ "DST", "SRC", "CNT", "M" ],
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
"CopyB_i" => {
"comment" => "implements a memcopy: CopyB(dst, src, mem) == memcpy(dst, src, attr(size))",
"reg_req" => { "in" => [ "edi", "esi", "none" ], "out" => [ "edi", "esi", "none" ] },
"outs" => [ "DST", "SRC", "M" ],
- "units" => [ "MEM" ],
+ "units" => [ "GP" ],
},
# Conversions
"Conv_I2I" => {
"reg_req" => { "in" => [ "gp", "gp", "gp", "none" ], "out" => [ "in_r3", "none" ] },
"comment" => "construct Conv Int -> Int",
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"Conv_I2I8Bit" => {
"reg_req" => { "in" => [ "gp", "gp", "eax ebx ecx edx", "none" ], "out" => [ "in_r3", "none" ] },
"comment" => "construct Conv Int -> Int",
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Conditional Move: CMov(sel, a, b) == sel ? a : b",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp" ], "out" => [ "in_r4" ] },
"latency" => 2,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "check if Psi condition tree evaluates to true and move result accordingly",
"reg_req" => { "in" => [ "gp", "gp", "gp" ], "out" => [ "in_r3" ] },
"latency" => 2,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Conditional Move: x87 Compare + int CMov",
"reg_req" => { "in" => [ "vfp", "vfp", "gp", "gp" ], "out" => [ "in_r4" ] },
"latency" => 10,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Set: Set(sel) == sel ? 1 : 0",
"reg_req" => { "in" => [ "gp", "gp", "gp", "gp", "none" ], "out" => [ "eax ebx ecx edx" ] },
"latency" => 2,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "check if Psi condition tree evaluates to true and set result accordingly",
"reg_req" => { "in" => [ "gp" ], "out" => [ "eax ebx ecx edx" ] },
"latency" => 2,
- "units" => [ "ALU" ],
+ "units" => [ "GP" ],
"mode" => "mode_Iu",
},
"comment" => "construct Set: x87 Compare + int Set",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "eax ebx ecx edx" ] },
"latency" => 10,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_Iu",
},
"comment" => "construct x87 Conditional Move: vfCMov(sel, a, b) = sel ? a : b",
"reg_req" => { "in" => [ "vfp", "vfp", "vfp", "vfp" ], "out" => [ "vfp" ] },
"latency" => 10,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Add: Add(a, b) = Add(b, a) = a + b",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Mul: Mul(a, b) = Mul(b, a) = a * b",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Sub: Sub(a, b) = a - b",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "vfp" ] },
"outs" => [ "res", "M" ],
"latency" => 20,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
},
"l_vfdiv" => {
"comment" => "virtual fp Rem: Rem(a, b) = a - Q * b (Q is integer)",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "vfp" ] },
"latency" => 20,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Abs: Abs(a) = |a|",
"reg_req" => { "in" => [ "vfp"], "out" => [ "vfp" ] },
"latency" => 2,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Chs: Chs(a) = -a",
"reg_req" => { "in" => [ "vfp"], "out" => [ "vfp" ] },
"latency" => 2,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Sin: Sin(a) = sin(a)",
"reg_req" => { "in" => [ "vfp"], "out" => [ "vfp" ] },
"latency" => 150,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Cos: Cos(a) = cos(a)",
"reg_req" => { "in" => [ "vfp"], "out" => [ "vfp" ] },
"latency" => 150,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Sqrt: Sqrt(a) = a ^ 0.5",
"reg_req" => { "in" => [ "vfp"], "out" => [ "vfp" ] },
"latency" => 30,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"reg_req" => { "in" => [ "gp", "gp", "none" ], "out" => [ "vfp", "none" ] },
"outs" => [ "res", "M" ],
"latency" => 2,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
},
"vfst" => {
"comment" => "virtual fp Store: Store(ptr, val, mem) = ST ptr,val",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "none" ] },
"latency" => 2,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_M",
},
"reg_req" => { "in" => [ "gp", "gp", "none" ], "out" => [ "vfp", "none" ] },
"outs" => [ "res", "M" ],
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
},
"l_vfild" => {
"comment" => "virtual fp integer Store: Store(ptr, val, mem) = iST ptr,val",
"reg_req" => { "in" => [ "gp", "gp", "vfp", "none" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_M",
},
"comment" => "virtual fp Load 0.0: Ld 0.0 -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load 1.0: Ld 1.0 -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load pi: Ld pi -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load ln 2: Ld ln 2 -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load lg 2: Ld lg 2 -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load ld 10: Ld ld 10 -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "virtual fp Load ld e: Ld ld e -> reg",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 4,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"comment" => "represents a virtual floating point constant",
"reg_req" => { "out" => [ "vfp" ] },
"latency" => 3,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
"mode" => "mode_D",
},
"reg_req" => { "in" => [ "gp", "gp", "vfp", "vfp", "none" ], "out" => [ "none", "none", "eax" ] },
"outs" => [ "false", "true", "temp_reg_eax" ],
"latency" => 10,
- "units" => [ "FPU" ],
+ "units" => [ "VFP" ],
},
#------------------------------------------------------------------------#