9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] 9vx and Go
@ 2012-12-09  7:00 lucio
  2012-12-09 10:45 ` David du Colombier
  0 siblings, 1 reply; 12+ messages in thread
From: lucio @ 2012-12-09  7:00 UTC (permalink / raw)
  To: 9fans

Trying to execute Go programs in 9vx suggests that somehow the new
syscalls required by the Go runtime are not supported.  There are a
few possible ways in which my installation is at fault, but before I
dig deeper (or ask different questions) I want to know that the
problem is not in 9vx itself.

If I need to update 9vx in some way, it is definitely worth my while
to do so.

++L




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-09  7:00 [9fans] 9vx and Go lucio
@ 2012-12-09 10:45 ` David du Colombier
  2012-12-10  6:52   ` lucio
  2012-12-10  9:04   ` lucio
  0 siblings, 2 replies; 12+ messages in thread
From: David du Colombier @ 2012-12-09 10:45 UTC (permalink / raw)
  To: 9fans

> Trying to execute Go programs in 9vx suggests that somehow the new
> syscalls required by the Go runtime are not supported.  There are a
> few possible ways in which my installation is at fault, but before I
> dig deeper (or ask different questions) I want to know that the
> problem is not in 9vx itself.
>
> If I need to update 9vx in some way, it is definitely worth my while
> to do so.

Yes, the tsemacquire syscall is not currently implemented in 9vx.

If you plan to work on vx32, please use the following
repository, since it should contain the most recent work.

https://bitbucket.org/0intro/vx32

You could send patches directly to myself since Ron Minnich
handed the repository off to me.

--
David du Colombier



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-09 10:45 ` David du Colombier
@ 2012-12-10  6:52   ` lucio
  2012-12-10  9:04   ` lucio
  1 sibling, 0 replies; 12+ messages in thread
From: lucio @ 2012-12-10  6:52 UTC (permalink / raw)
  To: 9fans

> If you plan to work on vx32, please use the following
> repository, since it should contain the most recent work.
>
> https://bitbucket.org/0intro/vx32
>
> You could send patches directly to myself since Ron Minnich
> handed the repository off to me.

Will do...

++L




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-09 10:45 ` David du Colombier
  2012-12-10  6:52   ` lucio
@ 2012-12-10  9:04   ` lucio
  2012-12-10 16:42     ` Anthony Martin
  1 sibling, 1 reply; 12+ messages in thread
From: lucio @ 2012-12-10  9:04 UTC (permalink / raw)
  To: 9fans

> Yes, the tsemacquire syscall is not currently implemented in 9vx.

The "ticks" field is also not present in the mach structure, so adding
tsemacquire isn't trivial.  I was hoping to get away with just adding
the field, but if the comment is correct, I need at minimum to add
code to keep the ticks up to date and I can't seem to find model code
in Plan 9 to do it.  I guess I'm drowning...

++L




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-10  9:04   ` lucio
@ 2012-12-10 16:42     ` Anthony Martin
  2012-12-10 17:23       ` Charles Forsyth
  0 siblings, 1 reply; 12+ messages in thread
From: Anthony Martin @ 2012-12-10 16:42 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

lucio@proxima.alt.za once said:
> > Yes, the tsemacquire syscall is not currently implemented in 9vx.
>
> The "ticks" field is also not present in the mach structure, so adding
> tsemacquire isn't trivial.  I was hoping to get away with just adding
> the field, but if the comment is correct, I need at minimum to add
> code to keep the ticks up to date and I can't seem to find model code
> in Plan 9 to do it.  I guess I'm drowning...

I have a few patches to support Go in my vx32 tree.
I've made lots of other changes so it might take me
a while to get a clean patch to David.

For tsemacquire, you can just s/m->ticks/msec()/.

There's also a few instructions (MOVQ, EMMS, etc.)
that have to be added to libvx32/emu.c since the Go
runtime and standard library use them.

Cheers,
  Anthony



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-10 16:42     ` Anthony Martin
@ 2012-12-10 17:23       ` Charles Forsyth
  2012-12-11  0:10         ` Anthony Martin
  0 siblings, 1 reply; 12+ messages in thread
From: Charles Forsyth @ 2012-12-10 17:23 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

MOVQ isn't a 32-bit instruction.

On 10 December 2012 16:42, Anthony Martin <ality@pbrane.org> wrote:
> There's also a few instructions (MOVQ, EMMS, etc.)



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-10 17:23       ` Charles Forsyth
@ 2012-12-11  0:10         ` Anthony Martin
  2012-12-11  0:16           ` erik quanstrom
  2012-12-11  0:29           ` Charles Forsyth
  0 siblings, 2 replies; 12+ messages in thread
From: Anthony Martin @ 2012-12-11  0:10 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

Charles Forsyth <charles.forsyth@gmail.com> once said:
> MOVQ isn't a 32-bit instruction.

It is if you're using MMX registers.

  Anthony



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-11  0:10         ` Anthony Martin
@ 2012-12-11  0:16           ` erik quanstrom
  2012-12-11  0:28             ` Anthony Martin
  2012-12-11  0:29           ` Charles Forsyth
  1 sibling, 1 reply; 12+ messages in thread
From: erik quanstrom @ 2012-12-11  0:16 UTC (permalink / raw)
  To: 9fans

On Mon Dec 10 19:11:39 EST 2012, ality@pbrane.org wrote:
> Charles Forsyth <charles.forsyth@gmail.com> once said:
> > MOVQ isn't a 32-bit instruction.
>
> It is if you're using MMX registers.

does 8g default to using mmx?

- erik



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-11  0:16           ` erik quanstrom
@ 2012-12-11  0:28             ` Anthony Martin
  2012-12-11  0:34               ` erik quanstrom
  0 siblings, 1 reply; 12+ messages in thread
From: Anthony Martin @ 2012-12-11  0:28 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

erik quanstrom <quanstro@quanstro.net> once said:
> On Mon Dec 10 19:11:39 EST 2012, ality@pbrane.org wrote:
> > Charles Forsyth <charles.forsyth@gmail.com> once said:
> > > MOVQ isn't a 32-bit instruction.
> >
> > It is if you're using MMX registers.
>
> does 8g default to using mmx?

No. They're written using BYTE instructions where needed.

Currently 8g will only generate 387 style fp code but the
is to eventually use SSE. See http://golang.org/issue/3912.

  Anthony



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-11  0:10         ` Anthony Martin
  2012-12-11  0:16           ` erik quanstrom
@ 2012-12-11  0:29           ` Charles Forsyth
  1 sibling, 0 replies; 12+ messages in thread
From: Charles Forsyth @ 2012-12-11  0:29 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

oh no, not MMX. SSE/SSE2 surely (ie, XMM)?

On 11 December 2012 00:10, Anthony Martin <ality@pbrane.org> wrote:
> It is if you're using MMX registers.



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-11  0:28             ` Anthony Martin
@ 2012-12-11  0:34               ` erik quanstrom
  2012-12-11  0:39                 ` Anthony Martin
  0 siblings, 1 reply; 12+ messages in thread
From: erik quanstrom @ 2012-12-11  0:34 UTC (permalink / raw)
  To: ality, 9fans

> No. They're written using BYTE instructions where needed.
>
> Currently 8g will only generate 387 style fp code but the
> is to eventually use SSE. See http://golang.org/issue/3912.
>

that's not what i read.  i read that it's going to be a compile-time
option.  surely they're not sneaking xmm in the side door.

- erik



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [9fans] 9vx and Go
  2012-12-11  0:34               ` erik quanstrom
@ 2012-12-11  0:39                 ` Anthony Martin
  0 siblings, 0 replies; 12+ messages in thread
From: Anthony Martin @ 2012-12-11  0:39 UTC (permalink / raw)
  To: erik quanstrom; +Cc: 9fans

erik quanstrom <quanstro@quanstro.net> once said:
> > No. They're written using BYTE instructions where needed.
> >
> > Currently 8g will only generate 387 style fp code but the
> > is to eventually use SSE. See http://golang.org/issue/3912.
> >
>
> that's not what i read.  i read that it's going to be a compile-time
> option.  surely they're not sneaking xmm in the side door.

Sort of. The plan is to use SSE by default but use an
environment variable (and compiler flag) to disable it.

This is how it works on ARM for different ABIs.
You set GOARM=5 or whatever and the compiler and
runtime won't use anything after that revision.

  Anthony



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-12-11  0:39 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-09  7:00 [9fans] 9vx and Go lucio
2012-12-09 10:45 ` David du Colombier
2012-12-10  6:52   ` lucio
2012-12-10  9:04   ` lucio
2012-12-10 16:42     ` Anthony Martin
2012-12-10 17:23       ` Charles Forsyth
2012-12-11  0:10         ` Anthony Martin
2012-12-11  0:16           ` erik quanstrom
2012-12-11  0:28             ` Anthony Martin
2012-12-11  0:34               ` erik quanstrom
2012-12-11  0:39                 ` Anthony Martin
2012-12-11  0:29           ` Charles Forsyth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).