podman

Форк
0
83 строки · 2.5 Кб
1
// cmd/9l/list.c from Vita Nuova.
2
//
3
//	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
4
//	Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
5
//	Portions Copyright © 1997-1999 Vita Nuova Limited
6
//	Portions Copyright © 2000-2008 Vita Nuova Holdings Limited (www.vitanuova.com)
7
//	Portions Copyright © 2004,2006 Bruce Ellis
8
//	Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
9
//	Revisions Copyright © 2000-2008 Lucent Technologies Inc. and others
10
//	Portions Copyright © 2009 The Go Authors. All rights reserved.
11
//
12
// Permission is hereby granted, free of charge, to any person obtaining a copy
13
// of this software and associated documentation files (the "Software"), to deal
14
// in the Software without restriction, including without limitation the rights
15
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
// copies of the Software, and to permit persons to whom the Software is
17
// furnished to do so, subject to the following conditions:
18
//
19
// The above copyright notice and this permission notice shall be included in
20
// all copies or substantial portions of the Software.
21
//
22
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
25
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28
// THE SOFTWARE.
29

30
package mips
31

32
import (
33
	"github.com/twitchyliquid64/golang-asm/obj"
34
	"fmt"
35
)
36

37
func init() {
38
	obj.RegisterRegister(obj.RBaseMIPS, REG_LAST+1, rconv)
39
	obj.RegisterOpcode(obj.ABaseMIPS, Anames)
40
}
41

42
func rconv(r int) string {
43
	if r == 0 {
44
		return "NONE"
45
	}
46
	if r == REGG {
47
		// Special case.
48
		return "g"
49
	}
50
	if REG_R0 <= r && r <= REG_R31 {
51
		return fmt.Sprintf("R%d", r-REG_R0)
52
	}
53
	if REG_F0 <= r && r <= REG_F31 {
54
		return fmt.Sprintf("F%d", r-REG_F0)
55
	}
56
	if REG_M0 <= r && r <= REG_M31 {
57
		return fmt.Sprintf("M%d", r-REG_M0)
58
	}
59
	if REG_FCR0 <= r && r <= REG_FCR31 {
60
		return fmt.Sprintf("FCR%d", r-REG_FCR0)
61
	}
62
	if REG_W0 <= r && r <= REG_W31 {
63
		return fmt.Sprintf("W%d", r-REG_W0)
64
	}
65
	if r == REG_HI {
66
		return "HI"
67
	}
68
	if r == REG_LO {
69
		return "LO"
70
	}
71

72
	return fmt.Sprintf("Rgok(%d)", r-obj.RBaseMIPS)
73
}
74

75
func DRconv(a int) string {
76
	s := "C_??"
77
	if a >= C_NONE && a <= C_NCLASS {
78
		s = cnames0[a]
79
	}
80
	var fp string
81
	fp += s
82
	return fp
83
}
84

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.