@@ -288,6 +288,8 @@ pub enum AddrSpaceKind {
288288 ReadOnly ,
289289 /// aka global
290290 ReadWrite ,
291+ /// For Harvard architectures, the program instruction's address space
292+ Instruction ,
291293 Named ( String ) ,
292294}
293295
@@ -299,6 +301,7 @@ impl FromStr for AddrSpaceKind {
299301 "alloca" => AddrSpaceKind :: Alloca ,
300302 "readonly" => AddrSpaceKind :: ReadOnly ,
301303 "readwrite" => AddrSpaceKind :: ReadWrite ,
304+ "instruction" => AddrSpaceKind :: Instruction ,
302305 named => AddrSpaceKind :: Named ( named. into ( ) ) ,
303306 } )
304307 }
@@ -310,6 +313,7 @@ impl fmt::Display for AddrSpaceKind {
310313 & AddrSpaceKind :: Alloca => "alloca" ,
311314 & AddrSpaceKind :: ReadOnly => "readonly" ,
312315 & AddrSpaceKind :: ReadWrite => "readwrite" ,
316+ & AddrSpaceKind :: Instruction => "instruction" ,
313317 & AddrSpaceKind :: Named ( ref s) => s,
314318 } )
315319 }
@@ -389,10 +393,13 @@ impl Default for AddrSpaces {
389393 fn default ( ) -> Self {
390394 let mut asp = BTreeMap :: new ( ) ;
391395
392- let kinds = vec ! [ AddrSpaceKind :: ReadOnly ,
393- AddrSpaceKind :: ReadWrite ,
394- AddrSpaceKind :: Alloca ,
395- AddrSpaceKind :: Flat , ] ;
396+ let kinds = vec ! [
397+ AddrSpaceKind :: ReadOnly ,
398+ AddrSpaceKind :: ReadWrite ,
399+ AddrSpaceKind :: Alloca ,
400+ AddrSpaceKind :: Flat ,
401+ AddrSpaceKind :: Instruction ,
402+ ] ;
396403
397404 let insert = |asp : & mut BTreeMap < _ , _ > , kind, idx| {
398405 let props = AddrSpaceProps {
0 commit comments