<enthusi>
couldnt that simply mean that yet have some in stock themselves?
<enthusi>
I hope it stays supported to some extent
<enthusi>
it's my main desktop :) (though I work alot on the laptop admittedly)
* gordonDrogon
wonders why: li a0, bar-foo is failing with Error: illegal operands `li a0,bar-foo'
radu242407821 has joined #riscv
<jimwilson_>
enthusi, the announcement says they still do have some in stock from first production run, but I doubt very much
join_subline has quit [Ping timeout: 256 seconds]
radu242407821 has quit [Ping timeout: 240 seconds]
jacklsw has quit [Quit: Back to the real life]
<leah2>
"Will you please please engineer a quitter cooling solution and use standard footprints for heat sinks and cooling fans." this :p
<palmer>
gordonDrogon: "li" is for constants, not symbols. You probably want "la"
<jrtc27>
symbol difference expressions are particularly weird when you have linker relaxations
<jrtc27>
I don't think la would fare any better
<jrtc27>
li a0, bar-foo should work but only if the value of bar-foo is known at assemble time
<jrtc27>
if they're not then I don't think la will help you, you'd need to put it in a constant pool and load from there
<jrtc27>
in some cases la a0, bar-foo *might* work if it can make it PC-relative
aburgess has joined #riscv
jjido has joined #riscv
aburgess has quit [Remote host closed the connection]
aburgess has joined #riscv
radu242407821 has joined #riscv
join_subline has joined #riscv
radu242407821 has quit [Ping timeout: 250 seconds]
winterflaw has quit [Remote host closed the connection]
nvaxplus has joined #riscv
<nvaxplus>
I have a potentially stupid question. I know the MULHSU op exists for signed multi-precision multiplies, gcc doesn't seem to actually emit it in circumstances where it seems like it would be expected
<la_mettrie>
is the right way to make loop counter iteration & memory address iteration in RISC-V assembly simply to use ADDI (in the context of the most basic loop)? there's no any post-increment or other supposedly sophisticated mechanism for that?
klys has joined #riscv
h2t has joined #riscv
<jrtc27>
yes, no pre/post-incremenent like arm
jjido has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
aburgess has quit [Ping timeout: 256 seconds]
Slide-O-Mix has joined #riscv
radu242407821 has joined #riscv
<gordonDrogon>
palmer, jrtc27 thanks. the symbols are all in the same file and the range of the subtraction is small, so I was confused, however I solved it by another way...
<jrtc27>
but are they symbols in .text and are linker relaxations enabled?
<gordonDrogon>
I'll need to read up more on linker relaxations, but yes, all in .text.
<jrtc27>
then yeah that's your problem
<jrtc27>
it would likely have built with -mno-relax, but then you lose out on the linker relaxation optimisations
<gordonDrogon>
I put .option relax in the file - no change.
<jrtc27>
that turns it *on*
jjido has joined #riscv
<gordonDrogon>
er, right - norelax - no change.
<gordonDrogon>
it's not desperately important for now - it was for a loop count to zero some memory - I changed the code to simply check for >= end
radu242407821 has quit [Ping timeout: 240 seconds]
<jrtc27>
hm, indeed, seems it does get rejected even then by llvm
<jrtc27>
interesting
<jrtc27>
I guess there are issues because you don't know how to expand li until you've evaluated the value
Narrat has joined #riscv
<jrtc27>
so it's easier to just ban symbol difference expressions entirely than try and support a subset and have to explain why some work and some don't
radu242407821 has joined #riscv
<gordonDrogon>
I'm finding it odd as I've used constructs like this in the past in other systems (well, ok, 6502/65816 recently) but I wonder now if it's due to sometimes 2 instructions being outputted from just one line in the code... or something along those lines.
<jrtc27>
yes, that's what makes it awkward
<jrtc27>
(and for rv64 you can end up with quite a lot more than 2 instructions, the ISA isn't very efficient for synthesising arbitrary 64-bit immediates, really need to just load from memory for those unless they're "simple")
<gordonDrogon>
indeed. it's been some time since I last did any risc assembler (Sparc/i860) and I really don't recall what happened there when trying to load 32-bit values. I suspect the assembler/linker wasn't as "intelligent" and you had to output the instructions 'by hand' as it were.
<jrtc27>
sparc didn't have any pseudoinstructions from what I remember
<jrtc27>
though it's weird 20/13-bit split did make it slightly easier to construct some values
<jrtc27>
uh, 22/13, even
<jrtc27>
20/13 would have been somewhat understandable
<jrtc27>
but it also spent a quarter of its encoding space on the call instruction (:
<gordonDrogon>
I really don't recall - I think I spent a month or 3 writing a test 'monitor' that let me test the hardware and boot OBP then that was that ...
<gordonDrogon>
and half that was writing the trap handler for the sliding window register save/load...
<gordonDrogon>
an I lost too many grey cells to the i860's dual instruction mode, so it's nothing more than a distant memory now...
<muurkha>
sparc was all about call and return
<gordonDrogon>
which was probably fine in the days when memory ran at cpu speed, but those days quickly vanished as memory didn't keep up...
nvaxplus has quit [Quit: Leaving]
<muurkha>
well, I mean, for example, register windows allow you to save and restore a call frame without touching RAM
<muurkha>
most of the time ;)
<gordonDrogon>
and ackermann be damned ;-)
<jrtc27>
so does having a cache
<muurkha>
yeah
<muurkha>
although usually saving and restoring a call frame to the cache involves running some instructions
<gordonDrogon>
anyway, my little system just executed it's first bytecode instruction which I'm happy with...
<muurkha>
congratulations!
<muurkha>
I think it's fair to say that caches have pretty much replaced register windows
<gordonDrogon>
so 65816 running a byecode vm written in '816 asm running a bcpl program emulating risc-v running a program interpreting the same bytecode VM ...
<gordonDrogon>
the instruction was simply 'ret' but you have to start somewhere...
<muurkha>
but what I meant was that the sparc instruction set seems to me to have been designed with a very high priority on procedure calls
<muurkha>
one manifestation of that was spending a quarter of its encoding space on the call instruction, and another was the register window mechanism
<gordonDrogon>
muurkha, indeed - but I think it's easy to do code analysis at the time (80's) and come to that conclusion - memory was still expensve and not that much slower than the cpu's of that time...
BOKALDO has quit [Quit: Leaving]
ado_ has joined #riscv
KombuchaKip has joined #riscv
aburgess has joined #riscv
Gravis has quit [Remote host closed the connection]
Andre_H has joined #riscv
ado_ has quit []
ado_ has joined #riscv
ado has joined #riscv
ado_ has quit []
ado has quit []
ado has joined #riscv
jjido has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
Sos has quit [Quit: Leaving]
___nick___ has quit [Ping timeout: 256 seconds]
Narrat has quit [Quit: They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.]
indy has joined #riscv
GreaseMonkey has quit [Quit: No Ping reply in 180 seconds.]
greaser|q has joined #riscv
vagrantc has quit [Ping timeout: 268 seconds]
vagrantc has joined #riscv
KombuchaKip has quit [Quit: Leaving.]
Noisytoot has quit [Ping timeout: 256 seconds]
seninha has joined #riscv
jmdaemon has joined #riscv
Noisytoot has joined #riscv
jmdaemon has quit [Ping timeout: 240 seconds]
cwebber has quit [Remote host closed the connection]
Gravis has joined #riscv
jburkholder has joined #riscv
<jburkholder>
Hi, any suggestions to get help with sipeed lichee rv?
<rm>
what do you need help with?
<jburkholder>
I just have the board, no carrier, I plugged in a usb c cable and some leds come on and I can see a new usb device on my linux desktop, does it emulate a usb serial port I can use the access the console?
<josuah>
are you trying to run Linux on it? did you already flash an image or are you in the process of installing something in it for the first time?
<rm>
jburkholder, probably not by default. I should come with a 4-pin connector to plug into onboard contacts, and get UART serial console via that