functions (floatnum * as first arg).
svn path=/trunk/yasm/; revision=281
}
int
-floatnum_get_int(unsigned long *ret_val, const floatnum *flt)
+floatnum_get_int(const floatnum *flt, unsigned long *ret_val)
{
unsigned char t[4];
- if (floatnum_get_sized(t, flt, 4))
+ if (floatnum_get_sized(flt, t, 4))
return 1;
LOAD_LONG(*ret_val, &t[0]);
* Returns 0 on success, 1 if overflow, -1 if underflow.
*/
static int
-floatnum_get_common(unsigned char *ptr, const floatnum *flt, int byte_size,
+floatnum_get_common(const floatnum *flt, unsigned char *ptr, int byte_size,
int mant_bits, int implicit1, int exp_bits)
{
int exponent = flt->exponent;
* s = sign (for mantissa)
*/
int
-floatnum_get_sized(unsigned char *ptr, const floatnum *flt, size_t size)
+floatnum_get_sized(const floatnum *flt, unsigned char *ptr, size_t size)
{
switch (size) {
case 4:
- return floatnum_get_common(ptr, flt, 4, 23, 1, 8);
+ return floatnum_get_common(flt, ptr, 4, 23, 1, 8);
case 8:
- return floatnum_get_common(ptr, flt, 8, 52, 1, 11);
+ return floatnum_get_common(flt, ptr, 8, 52, 1, 11);
case 10:
- return floatnum_get_common(ptr, flt, 10, 64, 0, 15);
+ return floatnum_get_common(flt, ptr, 10, 64, 0, 15);
default:
InternalError(__LINE__, __FILE__,
_("Invalid float conversion size"));
free(str);
/* 32-bit (single precision) format */
- printf("32-bit: %d: ", floatnum_get_sized(out, flt, 4));
+ printf("32-bit: %d: ", floatnum_get_sized(flt, out, 4));
for (i=0; i<4; i++)
printf("%02x ", out[i]);
printf("\n");
/* 64-bit (double precision) format */
- printf("64-bit: %d: ", floatnum_get_sized(out, flt, 8));
+ printf("64-bit: %d: ", floatnum_get_sized(flt, out, 8));
for (i=0; i<8; i++)
printf("%02x ", out[i]);
printf("\n");
/* 80-bit (extended precision) format */
- printf("80-bit: %d: ", floatnum_get_sized(out, flt, 10));
+ printf("80-bit: %d: ", floatnum_get_sized(flt, out, 10));
for (i=0; i<10; i++)
printf("%02x ", out[i]);
printf("\n");
/* Essentially a convert to single-precision and return as 32-bit value.
* The 32-bit value is a "standard" C value (eg, of unknown endian).
*/
-int floatnum_get_int(unsigned long *ret_val, const floatnum *flt);
+int floatnum_get_int(const floatnum *flt, unsigned long *ret_val);
/* ptr will point to the Intel-format little-endian byte string after a
* successful call (eg, [0] should be the first byte output to the file).
*/
-int floatnum_get_sized(unsigned char *ptr, const floatnum *flt, size_t size);
+int floatnum_get_sized(const floatnum *flt, unsigned char *ptr, size_t size);
/* Basic check to see if size is even valid for flt conversion (doesn't
* actually check for underflow/overflow but rather checks for size=4,8,10).
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 4) == vals[i].ret32,
+ fail_unless(floatnum_get_sized(flt, outval, 4) == vals[i].ret32,
ret_msg);
fail_unless(get_common_check_result(4, outval, vals[i].result32) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 4) == vals[i].ret32,
+ fail_unless(floatnum_get_sized(flt, outval, 4) == vals[i].ret32,
ret_msg);
fail_unless(get_common_check_result(4, outval, vals[i].result32) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 8) == vals[i].ret64,
+ fail_unless(floatnum_get_sized(flt, outval, 8) == vals[i].ret64,
ret_msg);
fail_unless(get_common_check_result(8, outval, vals[i].result64) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 8) == vals[i].ret64,
+ fail_unless(floatnum_get_sized(flt, outval, 8) == vals[i].ret64,
ret_msg);
fail_unless(get_common_check_result(8, outval, vals[i].result64) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 10) == vals[i].ret80,
+ fail_unless(floatnum_get_sized(flt, outval, 10) == vals[i].ret80,
ret_msg);
fail_unless(get_common_check_result(10, outval, vals[i].result80) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 10) == vals[i].ret80,
+ fail_unless(floatnum_get_sized(flt, outval, 10) == vals[i].ret80,
ret_msg);
fail_unless(get_common_check_result(10, outval, vals[i].result80) == 0,
result_msg);
}
int
-floatnum_get_int(unsigned long *ret_val, const floatnum *flt)
+floatnum_get_int(const floatnum *flt, unsigned long *ret_val)
{
unsigned char t[4];
- if (floatnum_get_sized(t, flt, 4))
+ if (floatnum_get_sized(flt, t, 4))
return 1;
LOAD_LONG(*ret_val, &t[0]);
* Returns 0 on success, 1 if overflow, -1 if underflow.
*/
static int
-floatnum_get_common(unsigned char *ptr, const floatnum *flt, int byte_size,
+floatnum_get_common(const floatnum *flt, unsigned char *ptr, int byte_size,
int mant_bits, int implicit1, int exp_bits)
{
int exponent = flt->exponent;
* s = sign (for mantissa)
*/
int
-floatnum_get_sized(unsigned char *ptr, const floatnum *flt, size_t size)
+floatnum_get_sized(const floatnum *flt, unsigned char *ptr, size_t size)
{
switch (size) {
case 4:
- return floatnum_get_common(ptr, flt, 4, 23, 1, 8);
+ return floatnum_get_common(flt, ptr, 4, 23, 1, 8);
case 8:
- return floatnum_get_common(ptr, flt, 8, 52, 1, 11);
+ return floatnum_get_common(flt, ptr, 8, 52, 1, 11);
case 10:
- return floatnum_get_common(ptr, flt, 10, 64, 0, 15);
+ return floatnum_get_common(flt, ptr, 10, 64, 0, 15);
default:
InternalError(__LINE__, __FILE__,
_("Invalid float conversion size"));
free(str);
/* 32-bit (single precision) format */
- printf("32-bit: %d: ", floatnum_get_sized(out, flt, 4));
+ printf("32-bit: %d: ", floatnum_get_sized(flt, out, 4));
for (i=0; i<4; i++)
printf("%02x ", out[i]);
printf("\n");
/* 64-bit (double precision) format */
- printf("64-bit: %d: ", floatnum_get_sized(out, flt, 8));
+ printf("64-bit: %d: ", floatnum_get_sized(flt, out, 8));
for (i=0; i<8; i++)
printf("%02x ", out[i]);
printf("\n");
/* 80-bit (extended precision) format */
- printf("80-bit: %d: ", floatnum_get_sized(out, flt, 10));
+ printf("80-bit: %d: ", floatnum_get_sized(flt, out, 10));
for (i=0; i<10; i++)
printf("%02x ", out[i]);
printf("\n");
/* Essentially a convert to single-precision and return as 32-bit value.
* The 32-bit value is a "standard" C value (eg, of unknown endian).
*/
-int floatnum_get_int(unsigned long *ret_val, const floatnum *flt);
+int floatnum_get_int(const floatnum *flt, unsigned long *ret_val);
/* ptr will point to the Intel-format little-endian byte string after a
* successful call (eg, [0] should be the first byte output to the file).
*/
-int floatnum_get_sized(unsigned char *ptr, const floatnum *flt, size_t size);
+int floatnum_get_sized(const floatnum *flt, unsigned char *ptr, size_t size);
/* Basic check to see if size is even valid for flt conversion (doesn't
* actually check for underflow/overflow but rather checks for size=4,8,10).
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 4) == vals[i].ret32,
+ fail_unless(floatnum_get_sized(flt, outval, 4) == vals[i].ret32,
ret_msg);
fail_unless(get_common_check_result(4, outval, vals[i].result32) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 4) == vals[i].ret32,
+ fail_unless(floatnum_get_sized(flt, outval, 4) == vals[i].ret32,
ret_msg);
fail_unless(get_common_check_result(4, outval, vals[i].result32) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 8) == vals[i].ret64,
+ fail_unless(floatnum_get_sized(flt, outval, 8) == vals[i].ret64,
ret_msg);
fail_unless(get_common_check_result(8, outval, vals[i].result64) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 8) == vals[i].ret64,
+ fail_unless(floatnum_get_sized(flt, outval, 8) == vals[i].ret64,
ret_msg);
fail_unless(get_common_check_result(8, outval, vals[i].result64) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 10) == vals[i].ret80,
+ fail_unless(floatnum_get_sized(flt, outval, 10) == vals[i].ret80,
ret_msg);
fail_unless(get_common_check_result(10, outval, vals[i].result80) == 0,
result_msg);
for (i=0; i<num; i++) {
get_common_setup(vals, i);
- fail_unless(floatnum_get_sized(outval, flt, 10) == vals[i].ret80,
+ fail_unless(floatnum_get_sized(flt, outval, 10) == vals[i].ret80,
ret_msg);
fail_unless(get_common_check_result(10, outval, vals[i].result80) == 0,
result_msg);