|
From: | Richard Henderson |
Subject: | Re: [Qemu-ppc] [Qemu-devel] [PATCH] fix fdiv instruction |
Date: | Mon, 25 Jun 2018 14:08:59 -0700 |
>
> Try
>
> uint64_t expected_answer = 0xffff0000deadbeef;
> ...
> c.i = expected_answer;
> asm volatile("fdiv %0, %1, %2" : "+f"(c.d) : "f"(1.0), "f"(0.0));
>
> to avoid depending on uninitialized data. (This expected value is
> an SNaN with a deadbeef marker Just to be Sure.)
>
>
> r~
Ok I made this program and tried it on my iMac G5 (PowerPC 970).
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
// Used to convert unsigned integer <--> double
union Converter
{
double d;
uint64_t i;
};
typedef union Converter Converter;
int main (int argc, const char * argv[]) {
Converter answer;
answer.i = 0xffff0000deadbeef;
//asm volatile("mtfsb1 27"); /* Set ZE bit */
asm volatile("fdiv %0, %1, %2" : "=f"(answer.d) : "f"(1.0),
"f"(0.0));
[Prev in Thread] | Current Thread | [Next in Thread] |