Skip to content

Commit 41b93b2

Browse files
Bharat Bhushanozbenh
authored andcommitted
powerpc: Added __cmpdi2 for signed 64bit comparision
This was missing on powerpc and I am getting compilation error drivers/vfio/pci/vfio_pci_rdwr.c:193: undefined reference to `__cmpdi2' drivers/vfio/pci/vfio_pci_rdwr.c:193: undefined reference to `__cmpdi2' Signed-off-by: Bharat Bhushan <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
1 parent 8616dff commit 41b93b2

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

arch/powerpc/kernel/misc_32.S

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,20 @@ _GLOBAL(__lshrdi3)
658658
or r4,r4,r7 # LSW |= t2
659659
blr
660660

661+
/*
662+
* 64-bit comparison: __cmpdi2(s64 a, s64 b)
663+
* Returns 0 if a < b, 1 if a == b, 2 if a > b.
664+
*/
665+
_GLOBAL(__cmpdi2)
666+
cmpw r3,r5
667+
li r3,1
668+
bne 1f
669+
cmplw r4,r6
670+
beqlr
671+
1: li r3,0
672+
bltlr
673+
li r3,2
674+
blr
661675
/*
662676
* 64-bit comparison: __ucmpdi2(u64 a, u64 b)
663677
* Returns 0 if a < b, 1 if a == b, 2 if a > b.

arch/powerpc/kernel/ppc_ksyms.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ EXPORT_SYMBOL(__ashldi3);
145145
EXPORT_SYMBOL(__lshrdi3);
146146
int __ucmpdi2(unsigned long long, unsigned long long);
147147
EXPORT_SYMBOL(__ucmpdi2);
148+
int __cmpdi2(long long, long long);
149+
EXPORT_SYMBOL(__cmpdi2);
148150
#endif
149151
long long __bswapdi2(long long);
150152
EXPORT_SYMBOL(__bswapdi2);

0 commit comments

Comments
 (0)