On 2/14/21 6:58 PM, Philippe Mathieu-Daudé wrote: > The R5900 CPU was removed some time ago (frankly I don't remember > why). This series add it back, but to prove it works, we also add > testing at the end. > > The main motivation is to have MIPS R5900 coverage, but to be able > to run real world r5900 binaries, I had to implement more opcodes. > > 42 patches are a lot, but 3 are already queued in linux-user-for-6.0, > and the 11 last ones are pure testing. I suppose in next versions > I'll split the testing patches, but to show the final objective I > included them in here. > > I tagged it RFC because some parts because: > > - We'd rather not add yet another target, but we need the > ILP32-on-64bit ABI (o32 64-bit) > > - RDHWR glibc kludge for user-mode > > - Avocado patches are only here to show the final test. > They are useful for my set of tests, but not meant to > be merged in mainstream. > > - gitlab jobs are only here to show the tests work. > If the target is ever accepted, it would go in an already > existing job. > > I'm OK to maintain 64-bit o32 and the testing out of tree, but the > TCG opcodes are worthwhile review for mainstream. > > Note: there is a sign-extension bug somewhere but I can't find it: > > $ qemu-r5900o32el busybox free > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= > =A0total =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0used =C2=A0=C2=A0=C2= > =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0free =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0sha= > red =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0buffers > =C2=A0Mem: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A03682012 =C2=A0=C2=A0=C2=A0=C2=A0= > =C2=A0=C2=A0812620 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A02869392 =C2=A0=C2=A0=C2=A0= > =C2=A0=C2=A01367556 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0321136 > Swap: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A02095100 =C2=A0=C2=A0=C2=A0=C2=A0-149854= > 4 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A03593644 > Total: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A05777112 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-= > 685924 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A06463036 > > $ free # host > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= > =A0total =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0used =C2=A0=C2=A0=C2=A0=C2= > =A0=C2=A0=C2=A0=C2=A0free =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0shared =C2=A0buff/cac= > he =C2=A0=C2=A0available > Mem: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A016264924 =C2=A0=C2=A0=C2=A0=C2=A093= > 23500 =C2=A0=C2=A0=C2=A0=C2=A02822500 =C2=A0=C2=A0=C2=A0=C2=A01377288 =C2=A0= > =C2=A0=C2=A0=C2=A04118924 =C2=A0=C2=A0=C2=A0=C2=A05149548 > Swap: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A018872316 =C2=A0=C2=A0=C2=A011084368 =C2= > =A0=C2=A0=C2=A0=C2=A07787948
[Same but unescaped] Note: there is a sign-extension bug somewhere but I can't find it: $ qemu-r5900o32el busybox free total used free shared buffers Mem: 3682012 812620 2869392 1367556 321136 Swap: 2095100 -1498544 3593644 Total: 5777112 -685924 6463036 $ free # host total used free shared buff/cache available Mem: 16264924 9323500 2822500 1377288 4118924 5149548 Swap: 18872316 11084368 7787948 See the used swap: 11084368 = 0x00a92250 -1498544 = 0xffe92250 Regards, Phil.