440 |
val fb = emit_FP fb |
val fb = emit_FP fb |
441 |
in |
in |
442 |
let |
let |
443 |
(*#line 449.12 "ppc/ppc.mdl"*) |
(*#line 455.12 "ppc/ppc.mdl"*) |
444 |
val (opcd, xo) = oper |
val (opcd, xo) = oper |
445 |
in |
in |
446 |
(case oper of |
(case oper of |
458 |
val fb = emit_FP fb |
val fb = emit_FP fb |
459 |
in |
in |
460 |
let |
let |
461 |
(*#line 462.12 "ppc/ppc.mdl"*) |
(*#line 468.12 "ppc/ppc.mdl"*) |
462 |
val (opcd, xo) = emit_farith oper |
val (opcd, xo) = emit_farith oper |
463 |
in |
in |
464 |
(case oper of |
(case oper of |
477 |
val fb = emit_FP fb |
val fb = emit_FP fb |
478 |
in |
in |
479 |
let |
let |
480 |
(*#line 471.12 "ppc/ppc.mdl"*) |
(*#line 477.12 "ppc/ppc.mdl"*) |
481 |
val (opcd, xo) = oper |
val (opcd, xo) = oper |
482 |
in a_form {opcd=opcd, frt=ft, fra=fa, frb=fb, frc=fc, xo=xo, rc=Rc} |
in a_form {opcd=opcd, frt=ft, fra=fa, frb=fb, frc=fc, xo=xo, rc=Rc} |
483 |
end |
end |
484 |
end |
end |
485 |
and cr_bit {cc} = |
and cr_bit {cc} = |
486 |
let |
let |
487 |
(*#line 476.12 "ppc/ppc.mdl"*) |
(*#line 482.12 "ppc/ppc.mdl"*) |
488 |
val (cr, bit) = cc |
val (cr, bit) = cc |
489 |
in ((emit_CC cr) << 0wx2) + (itow |
in ((emit_CC cr) << 0wx2) + (itow |
490 |
(case bit of |
(case bit of |
701 |
in eWord32 ((rs << 0wx15) + ((ra << 0wx10) + ((rb << 0wxb) + 0wx7c00012d))) |
in eWord32 ((rs << 0wx15) + ((ra << 0wx10) + ((rb << 0wxb) + 0wx7c00012d))) |
702 |
end |
end |
703 |
|
|
704 |
(*#line 572.7 "ppc/ppc.mdl"*) |
(*#line 578.7 "ppc/ppc.mdl"*) |
705 |
fun relative (I.LabelOp lexp) = (itow ((MLTreeEval.valueOf lexp) - ( ! loc))) ~>> 0wx2 |
fun relative (I.LabelOp lexp) = (itow ((MLTreeEval.valueOf lexp) - ( ! loc))) ~>> 0wx2 |
706 |
| relative _ = error "relative" |
| relative _ = error "relative" |
707 |
fun emitter instr = |
fun emitter instr = |