1833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#include <stdio.h> 2833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#include "opcodes.h" 3833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#include "dfp_utils.h" 4833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define __STDC_WANT_DEC_FP__ 1 5833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#include <float.h> 6833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 7833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define L2D(insn, initial, target,round) \ 8833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 9833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register unsigned long source asm("2") = initial; \ 10833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register typeof(target) _t asm("f0"); \ 11833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian asm volatile(insn(round,0,0,2) :"=f" (_t):"d"(source)); \ 12833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian _t; \ 13833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 14833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 15833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define I2D(insn, initial, target,round) \ 16833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 17833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register int source asm("2") = initial; \ 18833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register typeof(target) _t asm("f0"); \ 19833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian asm volatile(insn(round,0,0,2) :"=f" (_t):"d"(source)); \ 20833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian _t; \ 21833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian}) 22833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 23833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define D2L(insn, initial, type, round, cc) \ 24833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 25833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register type source asm("f0") = initial; \ 26833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register unsigned long target asm ("2") = 0; \ 27833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian asm volatile(insn(round,0,2,0) \ 28833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian "ipm %1\n\t" \ 29833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian "srl %1,28\n\t" \ 30833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian :"=d" (target), "=d" (cc) :"f"(source):"cc"); \ 31833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian target; \ 32833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 33833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 34833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define D2I(insn, initial, type, round, cc) \ 35833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 36833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register type source asm("f0") = initial; \ 37833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian register int target asm ("2") = 0; \ 38833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian asm volatile(insn(round,0,2,0) \ 39833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian "ipm %1\n\t" \ 40833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian "srl %1,28\n\t" \ 41833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian :"=d" (target), "=d" (cc) :"f"(source):"cc"); \ 42833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian target; \ 43833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian}) 44833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 45833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 46833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_PRINT_L2D(insn, l, d, round) \ 47833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 48833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(#insn " round=%d %lu -> ", 0x##round, l); \ 49833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = L2D(insn, l, d, round); \ 50833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DFP_VAL_PRINT(d, typeof(d)); \ 51833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf("\n"); \ 52833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 53833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 54833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_INSN_L2D(insn, round, type) \ 55833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 56833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian type d; \ 57833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0UL, d, round); \ 58833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 1UL, d, round); \ 59833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0xffffffffUL, d, round); \ 60833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0x80000000UL, d, round); \ 61833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0x7fffffffUL, d, round); \ 62833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0x100000000UL, d, round); \ 63833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0xffffffffffffffffUL, d, round); \ 64833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0x8000000000000000UL, d, round); \ 65833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_L2D(insn, 0x7fffffffffffffffUL, d, round); \ 66833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 67833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 68833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_PRINT_I2D(insn, l, d, round) \ 69833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 70833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(#insn " round=%d %d -> ", 0x##round, l); \ 71833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = I2D(insn, l, d, round); \ 72833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DFP_VAL_PRINT(d, typeof(d)); \ 73833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf("\n"); \ 74833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 75833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 76833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_INSN_I2D(insn, round, type) \ 77833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 78833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian type d; \ 79833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_I2D(insn, 0, d, round); \ 80833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_I2D(insn, 1, d, round); \ 81833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_I2D(insn, 0xffffffff, d, round); \ 82833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_I2D(insn, 0x80000000, d, round); \ 83833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_I2D(insn, 0x7fffffff, d, round); \ 84833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 85833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 86833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_PRINT_D2L(insn, d, type, round, cc) \ 87833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 88833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(#insn " round=%d ", 0x##round); \ 89833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DFP_VAL_PRINT(d, type); \ 90833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(" -> %lu ", D2L(insn, d, type, round, cc)); \ 91833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf("cc=%d\n", cc); \ 92833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 93833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 94833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_INSN_D2L(insn, round, type) \ 95833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 96833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian int cc; \ 97833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian type d; \ 98833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = -1.1DD; \ 99833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 100833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 0.DD; \ 101833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 102833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.DD; \ 103833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 104833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.4DD; \ 105833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 106833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.5DD; \ 107833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 108833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6DD; \ 109833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 110833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+4DD; \ 111833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 112833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+8DD; \ 113833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 114833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+4DD; \ 115833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 116833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+12DD; \ 117833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 118833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+20DD; \ 119833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 120833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+200DD; \ 121833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 122833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E-4DD; \ 123833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 124833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC32_MIN; \ 125833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 126833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC32_MAX; \ 127833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 128833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC64_MIN; \ 129833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 130833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC64_MAX; \ 131833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2L(insn, d, type, round, cc); \ 132833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 133833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 134833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_PRINT_D2I(insn, d, type, round, cc) \ 135833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 136833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(#insn " round=%d ", 0x##round); \ 137833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DFP_VAL_PRINT(d, type); \ 138833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf(" -> %d ", D2I(insn, d, type, round, cc)); \ 139833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian printf("cc=%d\n", cc); \ 140833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 141833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 142833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_INSN_D2I(insn, round, type) \ 143833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 144833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian int cc; \ 145833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian type d; \ 146833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = -1.1DD; \ 147833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 148833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 0.DD; \ 149833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 150833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.DD; \ 151833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 152833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.4DD; \ 153833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 154833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.5DD; \ 155833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 156833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6DD; \ 157833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 158833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+4DD; \ 159833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 160833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+8DD; \ 161833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 162833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+4DD; \ 163833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 164833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+12DD; \ 165833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 166833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+20DD; \ 167833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 168833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E+200DD; \ 169833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 170833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = 1.6E-4DD; \ 171833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 172833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC32_MIN; \ 173833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 174833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC32_MAX; \ 175833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 176833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC64_MIN; \ 177833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 178833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian d = DEC64_MAX; \ 179833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_PRINT_D2I(insn, d, type, round, cc); \ 180833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 181833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 182833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian#define DO_D2L(round) \ 183833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian ({ \ 184833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2L(CLFDTR, round, _Decimal64); \ 185833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2L(CLGDTR, round, _Decimal64); \ 186833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2I(CFDTR, round, _Decimal64); \ 187833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2L(CLFXTR, round, _Decimal128); \ 188833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2L(CLGXTR, round, _Decimal128); \ 189833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_D2I(CFXTR, round, _Decimal128); \ 190833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian }) 191833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 192833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 193833d01c0dc8151c0d27c6e5f8d366e16480be5e6florianint main() 194833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian{ 195833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian /* rounding mode is not used for the following insns */ 196833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_I2D(CDFTR, 0, _Decimal64); 197833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_I2D(CXFTR, 0, _Decimal128); 198833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLFTR, 0, _Decimal64); 199833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CXLFTR, 0, _Decimal128); 200833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CXLGTR, 0, _Decimal128); 201833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 202833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian /* Omit rounding mode value 0 and 2 as the current DFP rounding 203833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian mode is chosen for these values. */ 204833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 1, _Decimal64); 205833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(1); 206833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 207833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 3, _Decimal64); 208833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(3); 209833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 210833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 4, _Decimal64); 211833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(4); 212833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 213833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 5, _Decimal64); 214833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(5); 215833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 216833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 6, _Decimal64); 217833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(6); 218833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 219833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 7, _Decimal64); 220833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(7); 221833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 222833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 8, _Decimal64); 223833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(8); 224833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 225833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, 9, _Decimal64); 226833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(9); 227833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 228833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, a, _Decimal64); 229833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(a); 230833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 231833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, b, _Decimal64); 232833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(b); 233833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 234833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, c, _Decimal64); 235833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(c); 236833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 237833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, d, _Decimal64); 238833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(d); 239833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 240833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, e, _Decimal64); 241833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(e); 242833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 243833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_INSN_L2D(CDLGTR, f, _Decimal64); 244833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian DO_D2L(f); 245833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian 246833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian return 0; 247833d01c0dc8151c0d27c6e5f8d366e16480be5e6florian} 248