- ot(" ldr r0,[r7,#0x4c] ;@ Get X bit\n");\r
- ot(" mov r3,#0x00f00000\n");\r
- ot(" and r2,r3,r6,lsr #4\n");\r
- ot(" tst r0,#0x20000000\n");\r
- ot(" and r0,r3,r1,lsr #4\n");\r
- ot(" sub r0,r0,r2\n");\r
- ot(" subne r0,r0,#0x00100000\n");\r
-// ot(" tst r0,#0x00800000\n");\r
-// ot(" orreq r10,r10,#0x01000000 ;@ Undefined V behavior\n");\r
- ot(" cmp r0,#0x00900000\n");\r
- ot(" subhi r0,r0,#0x00600000 ;@ Decimal adjust units\n");\r
-\r
- ot(" mov r2,r1,lsr #28\n");\r
- ot(" add r0,r0,r2,lsl #24\n");\r
- ot(" mov r2,r6,lsr #28\n");\r
- ot(" sub r0,r0,r2,lsl #24\n");\r
- ot(" cmp r0,#0x09900000\n");\r
- ot(" orrhi r10,r10,#0xa0000000 ;@ N and C\n");\r
- ot(" addhi r0,r0,#0x0a000000\n");\r
-// ot(" and r3,r10,r0,lsr #3 ;@ Undefined V behavior part II\n");\r
-// ot(" orr r10,r10,r3,lsl #4 ;@ V\n");\r
- ot(" movs r0,r0,lsl #4\n");\r
-// ot(" orrmi r10,r10,#0x80000000 ;@ Undefined N behavior\n");\r
- ot(" bicne r10,r10,#0x40000000 ;@ Z flag\n");\r
+ // sbcd\r
+ ot(" mov r12,#0 ;@ corf\n");\r
+ ot(" adc r1,r1,#0\n");\r
+ ot(" sub r1,r2,r1\n");\r
+ ot(" cmp r1,#0x0f\n");\r
+ ot(" movhi r12,#6\n");\r
+\r
+ ot(" and r0,r0,#0xf0\n");\r
+ ot(" and r6,r6,#0xf0\n");\r
+ ot(" add r1,r1,r0\n");\r
+ ot(" sub r1,r1,r6\n");\r
+ ot(" tst r1,#0x80\n");\r
+ ot(" orrne r10,r10,#0x10000000 ;@ Undefined V behavior\n");\r
+ ot(" cmp r1,r12\n");\r
+ ot(" orrlt r10,r10,#0x20000000 ;@ C\n");\r
+ ot(" cmp r1,#0xff\n");\r
+ ot(" addhi r1,#0xa0\n");\r
+ ot(" sub r12,r1,r12\n");\r
+ ot(" movs r0,r12,lsl #24\n");\r
+ ot(" bicmi r10,r10,#0x10000000 ;@ Undefined V behavior part II\n");\r