12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Aplica o back-end do juninho
- @target : mips
- // Diretorio onde o resultado da compilação será gravado
- @outputDirectory : `C:\Users\EUGENIO CARVALHO\Desktop\tmp\comp`
- // Quantidade de palavras de um bloco 32 palavras de 4bytes
- @cacheBlockSize: `32`
- /**
- Profile de compilacao do back-end
- O formato da string é um json que descreve um array de definições de cada core
- {
- "stackBaseAddress" : 5888, -> endereço da base da pilha do core em questão
- "initFunction": "multiplica(0)", -> define a main de cada core. aceita ate 4 parametros com valores de constantes
- "id": "core0" -> label que define o codigo de cada core
- },
- Se "stackBaseAddress" não for definido o compilador irá inferir o valor iniciando do ultimo endereço da memoria
- */
- @profile: `[
- {
- "id" : "core0",
- "initFunction" : "main()",
- "filename" : "%s_core_0.txt"
- }
- ]`
- package main;
- /*
- ** Bit counter by Ratko Tomic
- ** Optimized 1 bit/loop counter
- ** Esta versão é a input small, com 75000 interações
- */
- func bitCount(x int) int {
- n := 0
- /*
- ** The loop will execute once for each bit of x set, this is in average
- ** twice as fast as the shift/test method.
- */
- if x > 0 {
- for {
- n++
-
- if x = x & (x-1); x == 0 {
- break
- }
- }
- }
- return n
- }
- func main(){
- var (
- n = 0
- seed = 10033
- //seed2 int = 112500
- )
-
- for i := 0; i < 10; i++ {
- //for i := 0; i < 2; i++ {
- n += bitCount(seed)
- //seed += 1
- seed += 2
- }
- return n
- }
|