implementing unusual floating point model

The machine target for which I am writing a backend has an unusual floating point model:

1. It is a 64-bit machine.

2. The register set is unified.
    There are no separate floating point registers.
    The floating point loads and stores are the same instructions as the fixed
    point ones.

3. All floating point arithmetic operations are register-to-register and always
    Thus, 32-bit operands must be promoted at some point.
    The 64-bit results must be rounded to 32-bits before being stored as

Does anyone know of an implemented architecture similar enough to study/copy?

Does anyone have any other hints on how to progress?